1.sizeof的使用:sizeof操作符以位元組形式給出了其運算元的儲存大小.
sizeof操作符不能用於函式型別,不完全型別或位字段。不完全型別指具有未知儲存大小的資料型別,如未知儲存大小的陣列型別、未知內容的結構或聯合型別、void型別等。
2.sizeof的結果:sizeof操作符的結果型別是size_t,它在標頭檔案中typedef為unsigned int型別。該型別保證能容納實現所建立的最大物件的位元組大小。
int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double型別的sizeof 在ansi c中沒有具體規定,大小依賴於實現,一般可能分別為2、2、2、 2、4、4、4、8、10。
當運算元是指標時,sizeof依賴於編譯器。near類指標位元組數為2,far、huge類指標位元組數為4。一般unix的指標位元組數為4。
當運算元具有陣列型別時,其結果是陣列的總位元組數,聯合型別運算元的sizeof是其最大位元組成員的位元組數。
結構型別運算元的sizeof是這種型別物件的總位元組數,包括任何墊補在內.
如果運算元是函式中的陣列形參或函式型別的形參,sizeof給出其指標的大小。
struct mystruct
;//所有成員變數都分配了空間,空間總的大小為1+7+8+4=20,不是結構
//的節邊界數(即結構中占用最大空間的型別所占用的位元組數sizeof
//(double)=8)的倍數,所以需要填充4個位元組,以滿足結構的大小為
//sizeof(double)=8的倍數
所以該結構總的大小為:sizeof(mystruc)為1+7+8+4+4=24。其中總的有7+4=11個位元組是vc自動填充的,沒有放任何有意義的東西.
sizeof 函式的用法
原文章出處 sizeof 功能 計算資料空間的位元組數 1.與strlen 比較 strlen 計算字元陣列的字元數,以 0 為結束判斷,不計算為 0 的陣列元素。而sizeof計算資料 包括陣列 變數 型別 結構體等 所佔記憶體空間,用位元組數 表示,計算字串時,計算為 0 2.指標與靜態陣列的s...
虛函式的sizeof
include usingnamespacestd classbase1 virtualvoidfun11 public virtual base1 classbase2 classderivedfromone publicbase2 virtualvoidfun22 classderivedfro...
對sizeof和strlen函式的使用小結
sizeof的介紹 1.作用 用來計算乙個常量或者乙個變數 一種資料型別所佔的記憶體位元組數 2.基本形式 1 sizeof 變數 常量 int size sizeof 10 int型別的常量占用4個位元組 int a 10 int size sizeof a int型別的變數占用4個位元組 2 s...