我正在重写一些Mac代码,其中嵌入了一个最初用C编写的免费软件库。编译器抱怨说,既然我在使用long double,我应该使用fabsl,而不是fabs所以我去换了。
然而,在这个主题上阅读a few pages似乎应该没有区别,自从C99以来,有一个类型泛型宏插入了基于类型的正确调用。
也许我用错了方言?
有人知道xcode7中的编译器默认值是什么吗,以及它是否有泛型宏?

最佳答案

通用宏在<tgmath.h>中定义,因此您需要#include it,如下代码段所示:

#include <tgmath.h>
#include <stdio.h>

int main() {
  long double ld = 3.14;
  double d = 3.14;
  float f = 3.14f;
  printf("%Lf %lf, %f\n",fabs(ld), fabs(d), fabs(f));
  return 0;
}

它与
gcc -Wall -Wextra a.c -oa -std=c99

关于c - fabs与fabsl,我是否必须在源代码中键入fabsl?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32376087/

10-12 16:11