如何检查编译器上的函数是否可用?

时间:2012-07-01 03:43:15

标签: c compiler-directives

有没有办法在编译时检测一个函数是否内置在编译器上? 例如,像这样:

#ifndef ITOA_FUNCTION
#define itoa myitoaimplementation
#endif

提前致谢。

1 个答案:

答案 0 :(得分:2)

不,没有任何直接的。关于你可以做的最好的事情是从平台,编译器版本等东西中猜测。

在大多数情况下,我更喜欢其他两条路线中的一条。一种是给自己的实现一个与编译器使用的名称不同的名称,并且无论编译器是否提供类似的东西,总是使用它。

第二种方法是将这样的函数实现放入一个单独的文件中,并处理makefile中的存在/不存在,只决定是否在项目中包含该文件。