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

 

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