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

Dou*_*hen 3 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;
.
.
.
Run Code Online (Sandbox Code Playgroud)

以下代码无关紧要.VS2005表示缺少';' 在'类型'之前.注释掉srand()可以解决问题.奇怪的是,当稍后调用rand()时,没有问题.我还注意到exit()和fprint()的行为.但不是malloc().思考?

小智 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));
    .
    .
}
Run Code Online (Sandbox Code Playgroud)