在 Pascal 語(yǔ)言中,sizeof() 是一種內(nèi)存容量度量函數(shù),功能是返回一個(gè)變量或者類(lèi)型的大小(以字節(jié)為單位);在 C 語(yǔ)言中,sizeof() 是一個(gè)判斷數(shù)據(jù)類(lèi)型或者表達(dá)式長(zhǎng)度的運(yùn)算符。
【資料圖】
sizeof怎么用
在 Pascal 語(yǔ)言中,sizeof() 是一種內(nèi)存容量度量函數(shù),功能是返回一個(gè)變量或者類(lèi)型的大?。ㄒ宰止?jié)為單位);在 C 語(yǔ)言中,sizeof() 是一個(gè)判斷數(shù)據(jù)類(lèi)型或者表達(dá)式長(zhǎng)度的運(yùn)算符。
判斷數(shù)據(jù)類(lèi)型長(zhǎng)度符的關(guān)鍵字
用法
sizeof (類(lèi)型說(shuō)明符)
sizeof 表達(dá)式
定義
sizeof是C/C++中的一個(gè)操作符(operator),簡(jiǎn)單的說(shuō)其作用就是返回一個(gè)對(duì)象或者類(lèi)型所占的內(nèi)存字節(jié)數(shù)。
MSDN上的解釋為:
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t.
其返回值類(lèi)型為size_t,在頭文件stddef.h中定義。
sizeof的常量性
sizeof的計(jì)算發(fā)生在編譯時(shí)刻,所以它可以被當(dāng)作常量表達(dá)式使用,最新的C99標(biāo)準(zhǔn)規(guī)定sizeof也可以在運(yùn)行時(shí)刻進(jìn)行計(jì)算,但在沒(méi)有完全實(shí)現(xiàn)C99標(biāo)準(zhǔn)的編譯器中就行不通了,上面的代碼在VC6中就通不過(guò)編譯。所以我們最好還是認(rèn)為sizeof是在編譯期執(zhí)行的,這樣不會(huì)帶來(lái)錯(cuò)誤,讓程序的可移植性強(qiáng)些。
基本數(shù)據(jù)類(lèi)型的sizeof
這里的基本數(shù)據(jù)類(lèi)型指short、int、long、float、double這樣的簡(jiǎn)單內(nèi)置數(shù)據(jù)類(lèi)型,由于它們都是和系統(tǒng)相關(guān)的,所以在不同的系統(tǒng)下取值可能不同,這務(wù)必引起我們的注意,盡量不要在這方面給自己程序的移植造成麻煩。
一般的,在32位編譯環(huán)境中,sizeof(int)的取值為4。