先看一段代码:

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐