先看一段代码:

#include <stdio.h>

int main(int argc,char *argv[])
{

printf("argc : %d\n",argc);

int i = 0;

for(i=0;i<argc;i++)
{
printf("the num of %d argv is:%s\n",i,argv[i]);

}

return 0;
}

这段代码很简单,第一句先打印命令行参数个数,随后将各个参数逐行输出。

代码看似没什么问题,然后使用VC++6.0编译时却报了个syntax error : missing ‘;’ before 'type’的错误,并且定位在 int i = 0;这一行

后来我将int i = 0;移动到了main函数的第一行,错误消失,编译成功。。。(what the fuck!)

原来,在C语言中需要把所有变量的声明放在可执行代码之前!!!