标签:
cpu在读写内存的时候,如果所给的地址是机器字长的整数倍,则操作效率会比较高,这可以称之为地址的对齐。
在一般的32bits机器上,地址对齐的界线是4的整数倍。
struct my_struct{ char ch1; //1字节 char ch2; //1字节 int n; //4字节 char ch3; 1字节 };//整个结构体可能占12个字节
对结构体类型采用sizeof操作符,得到的是结构体占用的内存字节数,包括所有的空闲字节,显然,这个值并不一定等于它的所有成员的大小之和。
#pragma pack(1) //将地址对齐界线改为1的整数 struct my_struct{ char ch1; //1字节 char ch2; //1字节 int n; //4字节 char ch3; 1字节 };//整个结构体占7个字节 #pragma pack() //将地址对齐界线改回原来的值
标签:
原文地址:http://www.cnblogs.com/Qwells/p/4998457.html