初识字节对齐 (三)

2014-11-23 23:12:01 · 作者: · 浏览: 16
--------------------------------------------------------------------------
我的PC 结构体是4个字节对齐的,那我如何才能让它1个字节对齐,达到我的要求以节省资源呢,使用如下语句
#pragma pack(push, 1)
结构体{}
#pragma pack(pop)
示例
[cpp]
#pragma pack(push, 1) //效果开始
typedef struct
{
unsigned f1 : 1;
}new_log_t;
#pragma pack(pop) //效果结束(其他的没有被这个命令包着的结构体(至少一个成员)sizeof后是4)
#pragma pack(push, 1) //效果开始
typedef struct
{
unsigned f1 : 1;
}new_log_t;
#pragma pack(pop) //效果结束(其他的没有被这个命令包着的结构体(至少一个成员)sizeof后是4)sizeof(new_log_t) = 1,看来精度只能是1个字节了(以后再看看有没有使精度更高的写法)
后记:以前一直听字节对齐字节对齐,不过听归听,只有自己的的确确遇到了这类问题才能深刻理解,结合者需求去看,去理解,才能加深理解,达到事半功倍的效果