uint8_t、uint16_t、uint32_t、uint64_t解释

在c语言中由6种基本数据类型:short、int、long、float、double、char

整型:short int、int、long int

浮点数:float、double

字符类型:char

因此,uint8_t、uint16_t、uint32_t、uint64_t这些数据类型都只是别名,这些数据类型都带有_t,_t表示这些数据类型是通过typedef定义的,而不是新的数据类型。

 

那么_t的意思到底表示什么? 他就是一个结构的标注可以理解为type/typedef的缩写,表示它是通过typedef定义的。

 

使用这些类型的原因:方便代码的维护。比如,在C中没有bool型,于是在一个软件中,一个程序员使用int,一个程序员使用short,会比较混乱,最好用一个typedef来定义一个统一的bool,每个程序员都可以用这个别名的bool。

 

不同的平台会有不同的字长,所以利用预编译和typedef可以方便的维护代码。

typedef unsigned char uint8_t;//将uint8_t别名为无符号字符型

按照posix标准,一般整形对应的*_t类型为:

1字节 uint8_t

2字节 uint16_t

4字节 uint32_t

8字节 uint64_t

 

注意:

typedef unsigned char uint8_t;

必须小心 uint8_t 类型变量的输出。

 

typedef unsigned char uint8_t;//将uint8_t别名为无符号字符型 

uint8_t buf = 65; 

printf("buf = %d",buf);//错误 
printf("buf = %c",buf);//正确,打印出字符的ASCII码 A

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章