缺省情况下,编译器会将标准库头文件中声明的函数视为普通函数。但编译器会将其中一些函数识别为“内函数”或“内置函数”。视为内置函数时,编译器可以生成更有效的代码。例如,编译器可以识别无副作用的函数,且通常为给定的相同输入返回相同的输出。编译器可将部分函数直接生成为内联函数。有关如何读取目标文件中的编译器注解来确定编译器实际对哪些函数进行替换的说明,请参见 er_src(1) 手册页。
-xbuiltin=%all 选项表示要求编译器识别尽可能多的内置标准函数。所识别函数的确切列表在不同的编译器代码生成器版本中各不相同。
-xbuiltin=%none 选项表示采用缺省编译器行为,编译器对内置函数不进行任何特殊优化。
如果未指定 -xbuiltin 选项,则编译器假定 -xbuiltin=%none。
如果仅指定了 -xbuiltin,则编译器假定 -xbuiltin=%all。
宏 -fast 的扩展包括了 -xbuiltin=%all。
下面的编译器命令请求标准库调用的特殊处理。
example% CC -xbuiltin -c foo.cc |
下面的编译器命令请求不对标准库调用进行特别处理。请注意,宏 -fast 的扩展包括了 -xbuiltin=%all。
example% CC -fast -xbuiltin=%none -c foo.cc |