sizeof 函式的使用

2021-06-01 20:06:54 字數 919 閱讀 7985

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...