我实现了一个名为abs()的函数。出现了以下错误:
内置函数,无法定义
我做错了什么?我正在使用Visual Studio 2005。
我实现了一个名为abs()的函数。出现了以下错误:
内置函数,无法定义
我做错了什么?我正在使用Visual Studio 2005。
所有数学函数的名称(请参见math.h)
所有以'f'或'l'为前缀的数学函数名称。
均保留给实现。
定义 static int abs(int x) { ... }
应该是合法的,但仅仅使用 int abs(int x) { ... }
是未定义行为,因此编译器可以做出一个合理的事情就是发出错误。
#define abs __builtin_magic_abs
或类似的内容。由于预处理器首先看到文本,因此您最终仍会尝试定义 static int __buildin_magic_abs(int x){...}
。由于 abs() 是 C 标准库中定义的名称,尝试按名称替换它可能是不明智的(并且肯定不可移植的)。 - RBerteig#include
任何定义abs
的头文件或在定义自己版本之前将其#undef
,标准明确允许您将其替换为static
函数。然而,替换extern
版本是未定义行为。 - R.. GitHub STOP HELPING ICE