vs2012编译C代码,总是出现error C2143: syntax error : missing ';' before 'type'

今天编译一个动态库,里面有用C编写的源文件,

为了调试自己加了一些简单的信息输出语句,但是总是编译不过,

最后精简到只是定义一个函数的局部变量也会编译失败,

最后Google了才明白,vs在编译C代码的时候会有一些特殊的check,

其中一种就是需要函数定义局部变量要在开头。

举例如下:

错误的代码
void func1()
{
   int x;
    //do some work
   int y;
   //do other work 
}

这样的代码在编译的时候就会在int y 这里报error C2143: syntax error : missing ';' before 'type';

你需要修改一下变量声明的位置:

真确的代码
void func1()
{
     int x;
     int y;
     //do some work
     //do other work 
}    
原文地址:https://www.cnblogs.com/yaoxiaping/p/4118474.html