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汉化版

TC 3.0,以及许多的C编译器,对变量的定义位置都有严格限制,那就是:

定义语句必须出现在其他所有语句之前,否则将报错。也就是说
int a;
printf("Hello world!");
是合法的,而
printf("Hello world!");
int a;
则不合法,即使你的程序中在定义int a;前并没有用到变量a

这只是一种严格的语法要求而已,现在很多编译器都没有这一规定。楼主不必太在意,只要把定义语句尽可能放在程序块{...}最前面就好了。这里说的程序块包括
if(...)
{
...
}

while(..)
{
...
}

等等

那个rwb应该先定义后使用的,这三个是局部变量,不能现使用后定义的

怎么可能错误呢?
????

在VC和TC环境下是不一样的,在VC下上下都可以,在TC下不管怎么样,都是要把定义放在前面的

应该不会有错啊!
这个问题可能是编译器的问题吧!