我经常看到使用 uint32、uint64 等类型的源代码,我想知道它们是否应该由程序员在应用程序代码中定义,或者它们是否应该在标准 lib 标头中定义。
在我的应用程序源代码中包含这些类型的最佳方式是什么?
C99stdint.h
定义了这些:
int8_t
int16_t
int32_t
uint8_t
uint16_t
uint32_t
而且,如果架构支持它们:
int64_t
uint64_t
还有各种其他整数类型定义stdint.h
。
如果您在没有 C99 环境的情况下陷入困境,那么您可能应该提供自己的 typedef 并使用 C99 的。
和uint32
(uint64
即没有_t
后缀)可能是特定于应用程序的。
这些整数类型都定义在stdint.h
如果您使用的是 C99,只需包含stdint.h
. 顺便说一句,如果处理器支持它们,64 位类型就在那里。
提问者实际上询问的是 int16 (等)而不是(丑陋的) int16_t (等)。
没有标准头文件 - Linux 的 /usr/include/ 文件夹中也没有任何标准头文件在没有“_t”的情况下定义它们。