[英]How to test if a type like uint64_t is supported?
如何测试编译器是否支持某种类型? 像uint64_t一样说。 有什么参考我可以用来学习如何测试任何给定的类型吗?
很难通过搜索引擎找到它。 我尝试了“C测试数据类型”和许多其他的东西。
你可以检查:
在包含stdint.h
之后定义UINT64_MAX
宏。
如果您不确定是否支持c99或更高版本,您也可以将其括在__STDC_VERSION__
的检查中>= 199901L
。 请注意,C89 / C90中也不存在__STDC_VERSION__
宏。
从标准(强调我的):
(C99,7.18p4)“对于本文所述的实现提供的每种类型,224)应声明typedef名称并定义相关的宏。 相反,对于本文所述的实现未提供的每种类型,不应声明typedef名称也不定义相关的宏。 “
尝试使用它 - 如果它不存在,你会得到一个编译器错误。 像uint64_t
这样的类型在stdint.h
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.