使用stdlib.h或stdio.h中的某些函数会导致语法错误

时间:2010-08-04 19:53:30

标签: c syntax-error

我正在使用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()。想法?

2 个答案:

答案 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(只是一点点)