如何测试编译器是否支持类型?说像 uint64_t。有没有什么地方可以用来学习如何测试任何给定类型的参考?
通过搜索引擎很难找到这一点。我尝试了“数据类型的 C 测试”和许多其他的东西。
您可以检查:
UINT64_MAX
宏是在 include 之后定义的stdint.h
。
如果您不确定是否支持 c99 或更高版本,您也可以将其附在__STDC_VERSION__
to be 中>= 199901L
。请注意,__STDC_VERSION__
C89/C90 中也不存在该宏。
从标准(强调我的):
(C99,7.18p4)“对于此处描述的实现提供的每种类型,224)应声明 typedef 名称并定义关联的宏。相反,对于此处描述的实现未提供的每种类型,不应声明 typedef 名称也不应定义相关的宏。 ”
尝试使用它——如果它不存在,你会得到一个编译器错误。喜欢的类型uint64_t
在stdint.h
.