Visual C ++编译器,编译stdlib.h时出错

时间:2012-01-24 21:28:38

标签: c++ visual-studio-2010 visual-c++

我正在尝试编译一个需要cmath中包含的函数的文件。我不相信我的代码本身因导致此错误而出错,我怀疑配置(即使所有非包含代码都已注释,它仍然存在),但不知道出了什么问题。我正在64位Windows主机上编译。除了添加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 :(得分:0)

下次,在您自己的代码之前,#include系统标头。这样你的宏就不会弄乱系统头并导致你误入歧途。