先看一段代码:
#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语言中需要把所有变量的声明放在可执行代码之前!!!