编译错误syntax error : missing ';' before 'type'原因

在vs2010中运行以下代码
//main.c

#include <stdio.h>

int main()
{
char a[100];
memset(&a, 0, 100);
char b;

return 0;
}

/////////////////////////////////
编译器将会报一个编译错误,
syntax error : missing ';' before 'type'
这个错误出在

char b;

这一行。
然后将程序改为
////////////////////////////////
//main.c

#include <stdio.h>

int main()
{
char a[100];
char b;
memset(&a, 0, 100);

return 0;
}

/////////////////////////////////

程序就会顺利通过编译。
在VC中编译c程序,在一个大括号括起的范围内,如果变量声明放在了函数调用的后面,那么编译的时候就会报错:
syntax error : missing ';' before 'type'

然后你可以修改为把变量声明放在函数调用之前。就会顺利通过编译。

这个问题在vc编译c++程序,或者gcc编译c程序的时候都不会出现,仅仅在vc编译c程序的时候才会出现.

你可能感兴趣的:(BEFORE)