如何通过预处理器指令检查类型unsigned long long
在当前构建环境中是否可用?
我尝试检查
#if __STDC_VERSION__ >= 199901L
/* Available */
#else
/* Not available */
#endif
但是使用gcc编译并且至少没有-std=
-compiler参数,这将导致“不可用”(但可以)。
是否有更好的宏要检查,以便至少可以与C99标准编译器一起使用,而与GCC一起使用而无需-std=C99
?
尽管这不是最优雅的解决方案,但我的第一个直觉是检查标题中是否存在ULLONG_MAX
符号limits.h
。
如果已定义,则unsigned long long int
几乎可以肯定该类型可用。如果未定义,则该类型可能不可用,或者至少没有得到很好的支持,并且只能作为不可移植的编译器扩展使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句