C++ 检查是否定义了uint64_t

C++ 检查是否定义了uint64_t,c++,types,preprocessor-directive,C++,Types,Preprocessor Directive,类型uint64\t不保证在32位平台上定义,并且类似于 int main() { uint64_t i = 0; } 可能导致类型不完整类型的编译错误 是否有预处理器指令来检查是否存在uint64\t?检查是否定义了类型的任何其他方法?我认为合理的方法是检查是否定义了相关的宏UINT64\u MAX,例如 #include <cstdint> /* don't forget to include */ ... #ifdef UINT64_MAX ... #endi

类型
uint64\t
不保证在32位平台上定义,并且类似于

int main() {
  uint64_t i = 0;
}
可能导致类型
不完整类型的编译错误


是否有预处理器指令来检查是否存在
uint64\t
?检查是否定义了类型的任何其他方法?

我认为合理的方法是检查是否定义了相关的宏
UINT64\u MAX
,例如

#include <cstdint> /* don't forget to include */

...

#ifdef UINT64_MAX
    ...
#endif
#包括/*别忘了包括*/
...
#ifdef UINT64_最大值
...
#恩迪夫
当然,您不能直接检查是否定义了某个类型同义词。根据C99、7.18.2限制指定宽度的整数类型(不具有C++标准的副本以确认、强调矿山):

以下类似对象的宏指定了最小值和最大值
中声明的类型的限制。每个宏名称 对应于7.18.1中的类似类型名称


考虑适当增加C或C++标签以获得更多的关注。