我正在使用Win7 Pro x64上的Visual Studio 2005中的一些C代码。代码是正确的;它在Eclipse下编译并在MinGW上运行。但是,使用标准C库(如stdio或stdlib)中的某些函数会导致以下行在VS2005中生成代码时出现语法错误。举个例子:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
#include"someOtherHeader.h"
int main(void){
srand((unsigned int) time(NULL));
double start;
.
.
.
以下代码无关紧要。 VS2005表示缺少';'在'类型'之前。注释掉srand()可以解决问题。奇怪的是,当稍后调用rand()时,没有问题。我还注意到exit()和fprint()的行为。但不是malloc()。想法?
答案 0 :(得分:10)
在Visual Studio中使用C会将编译器置于严格(旧学校C)模式。您的所有声明都必须位于块的开头:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
#include"someOtherHeader.h"
int main(void){
double start;
srand((unsigned int) time(NULL));
.
.
}
答案 1 :(得分:0)
Visual Studio支持NOT C99(只是一点点)