c - fabs 与 fabsl,我是否必须在源代码中输入 fabsl?

标签 c c99 xcode7-beta5

我正在重写一些 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/

相关文章:

c - 使用循环平铺转置大型二维矩阵没有性能提升

c++ - 在 C/C++ 中#include 头文件

c - 点 (.) 在结构初始值设定项中是什么意思?

c - 应该返回一个指针但编译正常

c - 创建列表的问题

c - c中struct中struct的指针

c - C 中 printf() 中的大字段宽度

xcode - 有没有一种快速的方法来折叠和展开 xcode 7 中的评论?

ios - 意外的 CFBundleExecutable key

ios - NSDate dateByAddingUnit 强制选项 - nil 不编译