在vc中运行以下程序:
//test.c
#include<stdio.h>
void main(void)
{
int i;
printf("Hello World/n");
int j;
}
将这个文件保存成了test.c
然后编译的时候会报一个错误:
syntax error : missing ';' before 'type'
仔细看起来所有的语法都似乎是对的,这个问题有点奇怪,如果把文件改成.cpp或者.cc则能正常编译,把“int j;”放在“printf("Hello World/n")”上也能正常编译。
google了下得到了答案和总结如下:
在VC中编译c程序,在一个大括号括起的范围内,如果变量声明放在了函数调用的后面,那么编译的时候就会报错:
syntax error : missing ';' before 'type'
然后你可以修改为把变量声明放在函数调用之前,就会顺利通过编译。
总结:
在VC中编译程序,如果是ANSI C或者C++,在可执行代码中随时定义变量是允许的,但是在C是不允许的。
这样的错误也体现在VS中,如果使用for (int i = 0; i++; i<10),且你的文件名是.c,编译时也会报错。