Использование определенных функций из stdlib.h или stdio.h вызывает синтаксические ошибки - PullRequest
3 голосов
/ 04 августа 2010

Я работаю над кодом на C в Visual Studio 2005 на Win7 Pro x64. Код правильный; он компилируется и работает на MinGW под Eclipse. Однако использование определенных функций из стандартных библиотек 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 (). Мысли? * * 1004

Ответы [ 2 ]

10 голосов
/ 04 августа 2010

Использование C в Visual Studio переводит компилятор в строгий режим (старой школы C).Все ваши объявления должны быть в начале ваших блоков:

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

int main(void){
    double start;
    srand((unsigned int) time(NULL));
    .
    .
}
0 голосов
/ 05 августа 2010

Visual Studio поддерживает НЕ C99 (чуть-чуть)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...