繁体   English   中英

如何测试是否支持类似uint64_t的类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM