在VC++6.0中,编译,调试都能通过,但运行到某一步的时候就报错的可能原因。
在VC++6.0中,编译没有错,但运行到某一步的时候就报错,走不下去了,然后一步步调试却能通过。很费解!
百度后,发现是声明变量时候出了问题。
然后我把变量的声明都放在了前面,就正常了~~~
百度时候,额外的收获记录如下:
C2143: syntax error : missing 'token1' before 'token2'
C2144: syntax error : missing 'token' before type 'type'
如果遇到上面这样的错误时,解决办法是把所有的数据声明放到可执行代码之前。
MSDN给出下面的代码会产生这样的error
#include <stdio.h>
void main(void)
{
int i;
printf("Hello World/n");
int j;
}
这样的错误可能发生在当变量的声明放在可执行代码之后。而这个是在K&R C中规定的,但在ANSI C中废除。
注: The C Programming Language的作者简称K&R,也是C语言之父, 经常用K&R C来和ANSI C做对比。
在 ANSI C或者C++中,在可执行代码中随时定义变量是允许的,但是在K&R C中是不允许的。
听说在VS中写c时,如果用for (int i = 0; i++; i<10),而你的文件名是.c,也会出现这样的错误。可以把.c改为.cpp就行了。