Компилятор Visual C ++, ошибки компиляции stdlib.h - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь скомпилировать файл, для которого требуются функции, включенные в cmath.Я не верю, что сам мой код виноват в возникновении этой ошибки, я подозреваю, что конфигурация (она сохраняется даже после того, как весь не включенный код прокомментирован), но не знаю, что происходит не так.Я компилирую на хосте Windows, 64 бит.Помимо добавления конфигурации сборки masm, я не верю, что я изменил какие-либо параметры компиляции на нестандартные, и проблема сохраняется после отключения masm и установки целевой конфигурации на 32-разрядную версию.Вот мой сгенерированный вывод:

1>...\VStudio\VC\include\stdlib.h(467): error C2062: type 'long' unexpected
1>...\VStudio\VC\include\stdlib.h(467): error C2062: type 'long' unexpected
1>...\VStudio\VC\include\stdlib.h(467): error C2059: syntax error : ')'
1>...\VStudio\VC\include\stdlib.h(468): error C2143: syntax error : missing ';' before '{'
1>...\VStudio\VC\include\stdlib.h(468): error C2447: '{' : missing function header (old-style formal list?)
1>...\VStudio\VC\include\stdlib.h(471): error C2062: type '__int64' unexpected
1>...\VStudio\VC\include\stdlib.h(471): error C2062: type '__int64' unexpected
1>...\VStudio\VC\include\stdlib.h(471): error C2059: syntax error : ')'
1>...\VStudio\VC\include\stdlib.h(472): error C2143: syntax error : missing ';' before '{'
1>...\VStudio\VC\include\stdlib.h(472): error C2447: '{' : missing function header (old-style formal list?)

Любая помощь будет принята с благодарностью.

Редактировать:

Я нашел проблемную строку.Вопреки моим ожиданиям, ошибка действительно возникает в коде и является ошибкой строки, унаследованной от предыдущей версии:

#define abs(a) ((a)<0? -(a):(a))

отвечает за мои проблемы.

1 Ответ

0 голосов
/ 25 января 2012

В следующий раз #include системные заголовки перед любым вашим собственным кодом.Таким образом, ваши макросы не могут связываться с системными заголовками и сбивать вас с пути.

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