今天编译一个动态库,里面有用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
}