1. 程式人生 > >c語言結構體大小 sizeof(struct A)

c語言結構體大小 sizeof(struct A)

成員 print ble ret 意義 cnblogs () pan color

1,數據類型自身對齊

數據類型的起始地址為其大小的整數倍

2,結構體的自身對齊

結構體的自身對齊值為其中最大的成員大小

3,指定對齊

可以使用關鍵詞#pragma pack(1) 來指定結構體的對齊值

4,有效對齊值

有效對齊值為自身對齊值與指定對齊值中較小的一個。(即指定對齊值超過自身對齊值無意義)

 1 #include<stdio.h>
 2 struct {
 3     int a;     //單個為4
 4     char b[3]; // 單個大小為1  因為是數組總和為3 
 5     double c;  //單個為4 
 6 }size; 
 7 int main() {
8 int v; 9 v=sizeof(size); 10 printf ("%d",v); //結果為 16 為4的整數倍補齊 11 return 0; 12 }

c語言結構體大小 sizeof(struct A)