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

C 使用stdlib.h或stdio.h中的某些函数会导致语法错误,c,syntax-error,C,Syntax Error,我正在Visual Studio 2005的Win7 Pro x64上编写一些C代码。代码是正确的;它在Eclipse下编译并在MinGW上运行。但是,在VS2005中构建代码时,使用标准C库(如stdio或stdlib)中的某些函数会导致以下几行出现语法错误。例如: #include<time.h> #include<stdlib.h> #include<stdio.h> #include"someOtherHeader.h" int main(void)

我正在Visual Studio 2005的Win7 Pro x64上编写一些C代码。代码是正确的;它在Eclipse下编译并在MinGW上运行。但是,在VS2005中构建代码时,使用标准C库(如stdio或stdlib)中的某些函数会导致以下几行出现语法错误。例如:

#include<time.h>
#include<stdlib.h>
#include<stdio.h>
#include"someOtherHeader.h"

int main(void){
    srand((unsigned int) time(NULL));
    double start;
.
.
.
#包括
#包括
#包括
#包括“someOtherHeader.h”
内部主(空){
srand((无符号整数)时间(NULL));
双启动;
.
.
.

下面的代码无关紧要。VS2005说在“type”之前缺少“;”。注释掉srand()可以解决问题。奇怪的是,当以后调用rand()时,没有问题。我还注意到exit()和fprint()的行为。但malloc()没有。想法?

在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));
    .
    .
}
#包括
#包括
#包括
#包括“someOtherHeader.h”
内部主(空){
双启动;
srand((无符号整数)时间(NULL));
.
.
}

Visual Studio不支持C99(只支持一点点)