是否可以查看内置函数定义
Is it possible to see builtin function definition?
这纯粹是好奇,我正在使用一个cmath函数,即cos,随便什么。查看 cmath 标头后,我看到了这样的事情:
inline _GLIBCXX_CONSTEXPR float
acos(float __x)
{ return __builtin_acosf(__x); }
还有那个"__builtin__",我在谷歌上找不到任何来源。我很想看看他们如何实现数学函数的源代码,我的意思是我猜他们使用泰勒之类的东西,但我想看看他们是如何做到的。它是出于专有原因隐藏还是可以找到?
GCC __builtin_
函数不是实际的函数,也就是说,它们并没有真正在任何地方声明和实现,而是被编译器检测到并映射到某个实现。请参阅builtins.h
、builtins.c
和builtins.def
。很难追踪实际实现的位置,但似乎这些数学函数取自您正在使用的libc实现。例如,挖掘 GLibc 源代码,可以找到至少几个 __ieee754_acosf
的实现(然后似乎被其他函数别名和包装(,一个在 C e_acosf.c
中,一个在 x86 汇编a_acosf.S
中(备份链接,因为这些是非官方的 GitHub 镜像e_acosf.c
e_acosf.S
(。你可以说可读性不是他们的首要任务。你可以在musl libc源代码树中找到类似的代码:c中的acosf.c和x86中的acosf.s。
相关文章:
- 内置函数可查看CPP中的成员变量
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- 为什么内联函数的效率低于内置函数
- OpenCL 内置函数选择
- 是否有内置函数可用于boost :: numeric ::间隔
- CMake 无法检测 gcc 内置函数,如 sqrt、pow、exp 等
- 是否有任何内置函数可以告诉编译器分支是否可预测
- 是否可以查看内置函数定义
- 是否有内置函数返回" the number of true value in a boolean vector "?
- 与内置函数的命名冲突
- c++win32中是否有用于数字系统转换的内置函数
- 调用 STL 容器的内置函数
- matlab 内置函数是用某种较低级别的语言编写的吗?
- 使用内置函数(或任何其他方法)在C++中对2D数组进行排序
- 反转字符串中的 n 个字符(字符串中没有空格),而不使用 c++ 中的内置函数
- LLVM IR是否包含内置函数的代码
- 如何获取字符串形式的int变量的长度内置函数,例如string.length()
- 在 C 中使用八度内置函数
- 是否有预定义的内置函数将数字转换为C++二进制格式