有没有办法在编译时检测一个函数是否内置在编译器上? 例如,像这样:
#ifndef ITOA_FUNCTION
#define itoa myitoaimplementation
#endif
提前致谢。
答案 0 :(得分:2)
不,没有任何直接的。关于你可以做的最好的事情是从平台,编译器版本等东西中猜测。
在大多数情况下,我更喜欢其他两条路线中的一条。一种是给自己的实现一个与编译器使用的名称不同的名称,并且无论编译器是否提供类似的东西,总是使用它。
第二种方法是将这样的函数实现放入一个单独的文件中,并处理makefile中的存在/不存在,只决定是否在项目中包含该文件。