标签:
系统在存储结构体变量时存在地址对齐问题,编译器在编译程序时会遵循两条原则:
一、结构体变量中成员的偏移量必须是成员大小的整数倍;
二、结构体大小必须是所有成员大小的整数倍。
1 #include<stdio.h> 2 3 struct a{ 4 int i; 5 float f; 6 char c; 7 double d; 8 long l; 9 }b; 10 11 int main(){ 12 printf("%d\n",sizeof(b.i));// 4 13 printf("%d\n",sizeof(b.f));// 4 14 printf("%d\n",sizeof(b.c));// 1 15 printf("%d\n",sizeof(b.d));// 8 16 printf("%d\n",sizeof(b.l));// 4 17 18 printf("%d\n",sizeof(a));// 32 19 printf("%d\n",sizeof(b));// 32 20 21 return 0; 22 }
标签:
原文地址:http://www.cnblogs.com/theBoyisNone/p/5658789.html