是否在任何stdlib头中定义了uint32,int32,uint64,int64等类型?

时间:2011-05-16 04:45:19

标签: c std

我经常看到使用uint32,uint64等类型的源代码,我想知道它们是应该由程序员在应用程序代码中定义,还是在标准的lib头文件中定义。

在我的应用程序源代码中使用这些类型的最佳方法是什么?

4 个答案:

答案 0 :(得分:121)

C99 stdint.h定义了这些:

  • int8_t
  • int16_t
  • int32_t
  • uint8_t
  • uint16_t
  • uint32_t

而且,如果架构支持它们:

  • int64_t
  • uint64_t

stdint.h中还有各种其他整数typedef。

如果您在没有C99环境的情况下陷入困境,那么您应该提供自己的typedef并使用C99环境。

uint32uint64(即没有_t后缀)可能是特定于应用的。

答案 1 :(得分:10)

这些整数类型都在stdint.h

中定义

答案 2 :(得分:2)

如果您使用的是C99,请添加stdint.h。顺便说一句,如果处理器支持它们,那么64位类型就存在。

答案 3 :(得分:0)

提问者实际上询问了int16(等)而不是(丑陋)int16_t(等)。

没有标准的标题 - 在Linux的/ usr / include /文件夹中也没有标准标题,而没有" _t"。