- __packed 强制结构体 按1字节对齐
__packed是进行一字节对齐。使用_packed一般会以降低运行性能为代价,由于大多数cpu处理数据在 合适的字节边界数的情况下会更有效,packed的使用会破坏这种自然的边界数。
如果编译器不支持__packed关键字,将其定义为空宏即可 #define __packed
- 位段
struct packed-data
{
unsigned a:2;
unsigned b:6;
unsigned c:4;
unsigned d:4;
int i;
}data;
C语言中,这叫 “位段”,C语言允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或称“位域”( bit field) 。利用位段能够用较少的位数存储数据。
- 大V