uint8_t / uint16_t / uint32_t / uint64_t 到底是什么

為什么會(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??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容