标签:style blog http color 使用 ar strong sp 数据
存储器的内存布局一般都是对齐的,即是按字对齐或半字对齐的方式访问的,优点是可以避免内存的浪费同时也有很高的内存操作和数据处理的速度。
如果访问非对齐的内存数据:
先看下面这些问题,你都知道这些结构体所占内存的大小以及结构体成员的实际内存分布吗?
结构体所占内存和实际使用内存是两个完全不同的概念,
结构体所占内存大小可以使用sizeof(type)测出,而实际使用的内存大小必须通过offsetof(type,member)测量偏移量来计算。使用说明如下:
下面是一些练习:
1 /*所占内存大小为8个字节*/ 2 struct node1 3 { 4 int a; 5 char b; 6 char c; 7 }stu1; 8 /*所占内存大小为12个字节*/ 9 struct node2 10 { 11 char b; 12 int a; 13 char c; 14 }stu2; 15 /*所占内存大小为6个字节*/ 16 struct node3 17 { 18 char a; 19 short b; 20 char c; 21 }stu3; 22 /*所占内存大小为24个字节*/ 23 struct node4 24 { 25 long a; 26 char *b; 27 short c; 28 char d; 29 short array[5]; 30 }stud4 31 /*这里含有柔性数组(不占内存),所占内存大小为8个字节*/ 32 struct node5 33 { 34 int a; 35 char c; 36 int array[]; 37 }stu5;
标签:style blog http color 使用 ar strong sp 数据
原文地址:http://www.cnblogs.com/philospy/p/4029870.html