結構體,共用體,枚舉所占內存大小
阿新 • • 發佈:2017-06-08
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) 1718 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 }
以下是運行結果
結構體,共用體,枚舉所占內存大小