在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就行了。

原文地址:https://www.cnblogs.com/lxt287994374/p/3065635.html