C语言的问题 高手给个明白的解释 谢谢
来源:百度知道 编辑:UC知道 时间:2024/06/21 06:14:48
代码的一部分 如果是:
printf(" RED WHITE BLACK");
printf("-------------------------------------");
int r,w,b;
int leap;
leap=0;
错误 提示Declaration is not allowed here
如果变成:
int r,w,b;
int leap;
leap=0;
printf(" RED WHITE BLACK\n");
printf("-------------------------------------\n");
通过
环境 TC 3.0汉化版
printf(" RED WHITE BLACK");
printf("-------------------------------------");
int r,w,b;
int leap;
leap=0;
错误 提示Declaration is not allowed here
如果变成:
int r,w,b;
int leap;
leap=0;
printf(" RED WHITE BLACK\n");
printf("-------------------------------------\n");
通过
环境 TC 3.0汉化版
TC 3.0,以及许多的C编译器,对变量的定义位置都有严格限制,那就是:
定义语句必须出现在其他所有语句之前,否则将报错。也就是说
int a;
printf("Hello world!");
是合法的,而
printf("Hello world!");
int a;
则不合法,即使你的程序中在定义int a;前并没有用到变量a
这只是一种严格的语法要求而已,现在很多编译器都没有这一规定。楼主不必太在意,只要把定义语句尽可能放在程序块{...}最前面就好了。这里说的程序块包括
if(...)
{
...
}
while(..)
{
...
}
等等
那个rwb应该先定义后使用的,这三个是局部变量,不能现使用后定义的
怎么可能错误呢?
????
在VC和TC环境下是不一样的,在VC下上下都可以,在TC下不管怎么样,都是要把定义放在前面的
应该不会有错啊!
这个问题可能是编译器的问题吧!