math.h编译错误:预期的声明说明符或'...'之前'(''

时间:2012-02-29 17:07:01

标签: c

我正在尝试编译一个相当大的项目。几个文件包括math.h.我得到的编译错误是:

"In file included from math.h:71:0,

mathcalls.h:310:1: error: expected declaration specifiers or '...' before '(' token"

我知道我的数学标题没有改变,它们包括我刚写的“你好数学世界”程序,所以我不确定问题是什么。 mathcalls.h文件中给出错误的特定行是

/* Round X to nearest integral value, rounding halfway cases away from
   zero.  */
__MATHCALLX (round,, (_Mdouble_ __x), (__const__));

有什么问题在这里?

1 个答案:

答案 0 :(得分:3)

您在加入round之前定义了<math.h>。像这样:

#define round(x) trunc((x+0.5))
#include <math.h>

使用gcc-4.6.2编译上述代码会输出以下错误:

In file included from /usr/include/math.h:71:0,
                 from a.c:2:
/usr/include/bits/mathcalls.h:310:1: error: expected declaration specifiers or '...' before '(' token