我正在重写一些 Mac 代码,其中嵌入了最初用 C 编写的免费软件库。编译器提示说,由于我使用的是 long double
,所以我应该使用 fabsl
而不是晶圆厂
。所以我去改变了它们。
但是,阅读 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/