C/C++基本数据类型所占字节数
關(guān)于這個(gè)主要的問(wèn)題,非常早曾經(jīng)就非常清楚了,C標(biāo)準(zhǔn)中并沒(méi)有詳細(xì)給出規(guī)定那個(gè)基本類(lèi)型應(yīng)該是多少字節(jié)數(shù),并且這個(gè)也與機(jī)器、OS、編譯器有關(guān),比方相同是在32bits的操作系統(tǒng)系,VC++的編譯器下int類(lèi)型為占4個(gè)字節(jié);而tuborC下則是2個(gè)字節(jié)。
所以int,long?int,short?int的寬度都可能隨編譯器而異。但有幾條鐵定的原則(ANSI/ISO制訂的):
-
sizeof(short?int)<=sizeof(int)
-
sizeof(int)<=sizeof(long?int)
-
short?int至少應(yīng)為16位(2字節(jié))
-
long?int至少應(yīng)為32位。
以下給出不同位數(shù)編譯器下的基本數(shù)據(jù)類(lèi)型所占的字節(jié)數(shù):
16位編譯器
char?:1個(gè)字節(jié)
char*(即指針變量):?2個(gè)字節(jié)
short?int?:?2個(gè)字節(jié)
int:??2個(gè)字節(jié)
unsigned?int?:?2個(gè)字節(jié)
float:??4個(gè)字節(jié)
double:???8個(gè)字節(jié)
long:???4個(gè)字節(jié)
long?long:??8個(gè)字節(jié)
unsigned?long:??4個(gè)字節(jié)
32位編譯器
char?:1個(gè)字節(jié)
char*(即指針變量):?4個(gè)字節(jié)(32位的尋址空間是2^32,?即32個(gè)bit,也就是4個(gè)字節(jié)。同理64位編譯器)
short?int?:?2個(gè)字節(jié)
int:??4個(gè)字節(jié)
unsigned?int?:?4個(gè)字節(jié)
float:??4個(gè)字節(jié)
double:???8個(gè)字節(jié)
long:???4個(gè)字節(jié)
long?long:??8個(gè)字節(jié)
unsigned?long:??4個(gè)字節(jié)
64位編譯器
char*(即指針變量):?8個(gè)字節(jié)
short?int?:?2個(gè)字節(jié)
int:??4個(gè)字節(jié)
unsigned?int?:?4個(gè)字節(jié)
float:??4個(gè)字節(jié)
double:???8個(gè)字節(jié)
long:???8個(gè)字節(jié)
long?long:??8個(gè)字節(jié)
unsigned?long:??8個(gè)字節(jié)
總結(jié)
以上是生活随笔為你收集整理的C/C++基本数据类型所占字节数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PWA(Progressive Web
- 下一篇: C++ 学习基础篇(一)—— C++与C