如何检查功能宏是否有效?

时间:2017-08-16 10:43:22

标签: c gcc autoconf

在C中,检查功能宏是否有效的正确方法是什么?

例如,如果configure.ac包含宏AC_USE_SYSTEM_EXTENSIONS,则它将在任何操作系统上定义_GNU_SOURCE。但是,如果我们在OSX上编译,则_GNU_SOURCE将不会产生任何影响。但是在GNU系统上它确实如此,那么如何检查_GNU_SOURCE是否启用了一个功能,例如qsort_r

man feature_test_macros说我不应该包含features.h,因为它可能在每个系统上都有所不同,这意味着我无法使用__USE_GNU

另一种选择是检查是否定义了__GNUC__,或者是否定义了__GNUC___GNU_SOURCE

0 个答案:

没有答案