2023年8月8日,周二上午
目錄
- 為什么會(huì)產(chǎn)生int8_t、uint8_t等這類數(shù)據(jù)類型
- int8_t、uint8_t等這類數(shù)據(jù)類型有什么用
- 頭文件
- int8_t、uint8_t等這類數(shù)據(jù)類型是怎么實(shí)現(xiàn)的
為什么會(huì)產(chǎn)生int8_t、uint8_t等這類數(shù)據(jù)類型
根本原因在于,C 語(yǔ)言標(biāo)準(zhǔn)只是規(guī)定了各個(gè)基本類型的最小字節(jié)長(zhǎng)度,但并沒(méi)有指定它們的確切字節(jié)長(zhǎng)度:
-
char 類型:?
char
?類型的最小大小為 1 字節(jié),用來(lái)存儲(chǔ)字符的基本類型。 -
short 類型:?
short
?類型的最小大小為 2 字節(jié),用來(lái)存儲(chǔ)短整數(shù)的基本類型。 -
int 類型:?
int
?類型的最小大小為 2 字節(jié),用來(lái)存儲(chǔ)整數(shù)的基本類型。 -
long 類型:?
long
?類型的最小大小為 4 字節(jié),用來(lái)存儲(chǔ)長(zhǎng)整數(shù)的基本類型。 -
long long 類型:?
long long
?類型的最小大小為 8 字節(jié),用來(lái)存儲(chǔ)超長(zhǎng)整數(shù)的基本類型。
比如,
在64位Windows上運(yùn)行C語(yǔ)言的sizeof(long)得到的是4
在64位Linux上運(yùn)行C語(yǔ)言的sizeof(long)得到的是8
雖然不一樣,但它們都不會(huì)小于4字節(jié)
再比如,
在某些平臺(tái)上運(yùn)行C語(yǔ)言的sizeof(int)得到的是2
在64位和32位Windows上運(yùn)行C語(yǔ)言的sizeof(int)得到的是4
雖然不一樣,但它們都不會(huì)小于2字節(jié)
總而言之,C語(yǔ)言現(xiàn)有的基本數(shù)據(jù)類型,不能滿足跨平臺(tái)的需求。
因?yàn)镃語(yǔ)言現(xiàn)有的基本數(shù)據(jù)類型在不同的平臺(tái)有不同的字節(jié)長(zhǎng)度,當(dāng)換一個(gè)平臺(tái)時(shí)可能會(huì)在數(shù)據(jù)大小方面出現(xiàn)問(wèn)題。
int8_t、uint8_t等這類數(shù)據(jù)類型有什么用
Integer type with a width of exactly 8, 16, 32, or 64 bits.
具有精確位寬的8位、16位、32位或64位整型
也就是說(shuō),無(wú)論在什么平臺(tái),無(wú)論用什么編譯器,只要是遵守C語(yǔ)言標(biāo)準(zhǔn)的,
int8_t和uint8_t一定是8位的整型,
int16_t和uint16_t一定是16位的整型,
int32_t和uint32_t一定是32位的整型,
int64_t和uint64_t一定是64位的整型
頭文件
在C語(yǔ)言中,它們定義在stdint.h
在C++中,它們定義在cstdint
int8_t、uint8_t等這類數(shù)據(jù)類型是怎么實(shí)現(xiàn)的
我研究了幾個(gè)小時(shí)也沒(méi)能徹底弄懂,感覺(jué)沒(méi)那么簡(jiǎn)單,還是挺復(fù)雜的,
其實(shí)也不用研究這些,知道怎么用、為什么要用就可以了,
不建議去研究這個(gè)....
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-635318.html
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-635318.html
?
到了這里,關(guān)于詳解C語(yǔ)言中的int8_t、uint8_t、int16_t、uint16_t、int32_t、uint32_t、int64_t、uint64_t的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!