码迷,mamicode.com
首页 > 其他好文 > 详细

数据对齐

时间:2016-01-06 20:14:02      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!