urz*_*eit 5 c unsigned-long-long-int c-preprocessor
如何通过预处理器指令检查该类型unsigned long long在当前构建环境中是否可用?
我尝试检查
#if __STDC_VERSION__ >= 199901L
/* Available */
#else
/* Not available */
#endif
Run Code Online (Sandbox Code Playgroud)
但是用 gcc 编译并且至少没有-std=-compiler 参数这会导致“不可用”(但可以工作)。
是否有更好的宏来检查,以便至少它可以与 C99 标准编译器一起工作,并且可以在没有 的情况下与 GCC 一起工作-std=C99?
尽管这不是最优雅的解决方案,但我的第一反应是检查标头ULLONG_MAX中是否存在该符号limits.h。
如果已定义,则该unsigned long long int类型几乎肯定可用。如果未定义,则该类型可能不可用\xe2\x80\x94,或者至少,它没有得到很好的支持,并且可能只能作为不可移植的编译器扩展使用。
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |