為什么會(huì)有這個(gè)類型出現(xiàn)呢?
方便代碼維護(hù),涉及跨平臺(tái),不同得平臺(tái)有不同的字長(zhǎng)。
如:
????????在C中沒(méi)有bool型,于是在一個(gè)軟件中,一個(gè)程序員使用int,一個(gè)程序員使用short,會(huì)比較混亂,最好用一個(gè)typedef來(lái)定義一個(gè)統(tǒng)一的bool,每個(gè)程序員都可以用這個(gè)別名的bool。
1 .uint8_t / uint16_t / uint32_t / uint64_t 是什么
? ? ?? 答:是使用typedef給類型起得別名。
2.?uint8_t / uint16_t / uint32_t / uint64_t? 占用幾個(gè)字節(jié)
? ? ?? 答: ? ? 1字節(jié)?? ? uint8_t
????????????????????2字節(jié)?? ? uint16_t
????????????????????4字節(jié)?? ? uint32_t
? ? ? ? ? ? ? ? ? ? 8字節(jié)?? ? uint64_t
3. 這些類型在哪里定義
C99標(biāo)準(zhǔn)的C語(yǔ)言硬件為我們定義了這些類型。 按照posix標(biāo)準(zhǔn),一般整形對(duì)應(yīng)的*_t類型,
具體定義在:/usr/include/stdint.h ? ?ISO C99: 7.18 Integer types <stdint.h>
示例:
/*?Unsigned.??*/??
typedef?unsigned?char???????????uint8_t;??
typedef?unsigned?short?int??????uint16_t;??
#ifndef?__uint32_t_defined??
typedef?unsigned?int????????????uint32_t;??
#?define?__uint32_t_defined??
#endif??
#if?__WORDSIZE?==?64??
typedef?unsigned?long?int???????uint64_t;??
#else??
__extension__??
typedef?unsigned?long?long?int??uint64_t;??
#endif??