1. 程式人生 > >結構體,共用體,枚舉所占內存大小

結構體,共用體,枚舉所占內存大小

http 結構體 int img main printf har alt mon

結構體要註意位補齊(有4位補齊和8位補齊,默認8位)

 1 #include<stdio.h>
 2 #pragma pack(push)
 3 #pragma pack(4)
 4 struct test
 5 {    
 6     
 7     char a; //補3位
 8     long c;
 9     char d;
10     char h;//補2位
11     int b;
12     char e;  //補3位或補7位  
13     double f;
14     char g;   //補3位或補7位
15 }s1;
16 #pragma pack(pop)
17
18 typedef struct{ 19 double a; 20 char b; 21 }s2; 22 23 union test2 24 { 25 char a; 26 short b; 27 }s3; 28 29 enum week{sun=7,mon=1,tue,wed,thu,fri,sta}; 30 enum week weekday; 31 32 void main(void) 33 { 34 printf("s1:%d \n",sizeof(s1)); 35 printf("s2:%d \n",sizeof(s2));
36 printf("s3:%d \n",sizeof(s3)); 37 printf("week:%d \n",sizeof(weekday)); 38 }

以下是運行結果

技術分享

結構體,共用體,枚舉所占內存大小