就个人而言,*_t的t可以理解为类型定义。 由于每个平台的基本数据大小定义不同,为了确保与每个平台的兼容性,c语言可以通过预编译和typedef来最有效地维护代码。 其实这些都不是新的数据类型。 为方便用户,C99标准c语言硬件为我们定义了这些类型,我们可以放心使用。
例如,int32_t实际上是32位int类型的数据。
附件: C99标准中的inttypes.h内容
00001
00017
00018 #ifndef __INTTYPES_H_
00019 #define __INTTYPES_H_
00020
00021
00023
00024类型化签名char int8_ t;
00025类型def unsigned char uint8_ t;
00026
00027 typedef int int16_t;
00028类型def unsigned int uint 16 _ t;
00029
00030 typedef long int32_t;
0031 typedefunsignedlonguint 32 _ t;
00032
00033 typedef long long int64_t;
0034 typedefunsignedlonglonguint 64 _ t;
00035
00036 typedef int16_t intptr_t;
00037 typedef uint16_t uintptr_t;
00038
00039 #endif