5.17 内建函数
什么是内建函数
- 编译器内部实现
- 直接使用:跟关键字一样、无须#include头文件
- 命名:以__builtin开头
内建函数特点
- 编译器内部使用:异常处理、变长参数列表
- 主要用于性能优化
- 部分是C标准库函数的内建版本
- 没有文档、变动频繁,一般不推荐使用
常用内建函数
__builtin_return_address (LEVEL)
/*
返回当前函数或调用者的返回地址
0:表示当前函数的返回地址
1:表示当前函数的调用者的返回地址
*/
__builtin_frame_address(LEVEL)
/*
返回函数的栈帧地址
0:表示当前函数
1:表示当前函数的调用者
*/
C标准库的内建函数
- 与标准库函数命名相同,加前缀__builtin_
- 与标准库函数的功能相似
- 内存相关函数:memcpy 、memset、memcmp
- 数学函数:log、cos、abs、exp、
- 字符串处理函数:strcat、 strcmp、strcpy 、 strlen
- 打印函数:printf、scanf、putchar、puts