8

如何测试编译器是否支持类型?说像 uint64_t。有没有什么地方可以用来学习如何测试任何给定类型的参考?

通过搜索引擎很难找到这一点。我尝试了“数据类型的 C 测试”和许多其他的东西。

4

2 回答 2

13

您可以检查:

UINT64_MAX宏是在 include 之后定义的stdint.h

如果您不确定是否支持 c99 或更高版本,您也可以将其附在__STDC_VERSION__to be 中>= 199901L。请注意,__STDC_VERSION__C89/C90 中也不存在该宏。

从标准(强调我的):

(C99,7.18p4)“对于此处描述的实现提供的每种类型,224)应声明 typedef 名称并定义关联的宏。相反,对于此处描述的实现未提供的每种类型,不应声明 typedef 名称也不应定义相关的宏。

于 2012-12-29T01:50:46.377 回答
2

尝试使用它——如果它不存在,你会得到一个编译器错误。喜欢的类型uint64_tstdint.h.

于 2012-12-29T01:50:51.417 回答