C語言中幾種型別所佔位元組數

2021-10-05 03:36:40 字數 874 閱讀 8734

最近經常會遇到c語言中各型別變數所佔位元組數的問題,索性在這裡做乙個整理總結。

其實c標準並沒有具體給出規定哪個基本型別應該是多少個位元組數,而且這個也與os、編譯器有關,比如同樣是在32位作業系統,vc++的編譯器下int型別為4個位元組,而在tuborc下則是2個位元組。

下面給出乙個**,方便檢視個型別的位元組數:

型別16位

32 位

64位char11

1short int22

2int24

4unsigned int24

4float44

4double88

8long44

8long long88

8unsigned long44

8首先來看字元型別,這裡單指char , char變數在記憶體中儲存的是字元對應的ascii碼值。所以長度也是固定的,不管在哪種編譯器下,均為1個位元組。

再來看浮點型別,c中的浮點型別有倆種,float和double,與整數不同的是,浮點數的長度適中的固定的,float占用4個位元組,double占用8個位元組。

最後來看整型型別,查閱資料後發現雖然16位、32位或者64位的機子各種型別並不一樣,但有幾條規則(ansi/ iso制定):

最近經常會遇到c語言中各型別變數所佔位元組數的問題,索性在這裡做乙個整理總結。

其實c標準並沒有具體給出規定哪個基本型別應該是多少個位元組數,而且這個也與os、編譯器有關,比如同樣是在32位作業系統,vc++的編譯器下int型別為4個位元組,而在tuborc下則是2個位元組。

下面給出乙個**,方便檢視個型別的位元組數:

C語言中各種整型型別所佔位元組數

平台 64位編譯器 linux gcc includemain 結果 char a 1 char b 8 short int c 2 int d 4 unsigned int e 4 float f 4 double g 8 long h 8 long long i 8 unsiged long j...

C語言各型別所佔位元組數

1 struct結構體變數大小等於結構體中的各個成員變數所佔記憶體大小總和,union共用體變數大小等於共用體結構中占用記憶體最大的成員的記憶體大小 聯合體中占用記憶體空間最大的字段加上填充位元組 對齊位元組後所需位元組數 2 列舉型別,指乙個被命名的整型常數的集合。即列舉型別,本質上是一組常數的集...

C語言中資料型別所佔位元組數總結

和機器字長及編譯器有關係 所以,int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則 ansi iso制訂的 1 sizeof short int sizeof int 2 sizeof int sizeof long int 3 short int至少應為16位...