C语言宏的使用
1、#pragma pack
给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式。
#pragma pack (n)
C编译器将按照n个字节对齐。
#pragma pack ()
取消自定义字节对齐方式。
#pragma pack (push,1)
把原来对齐方式设置压栈,并设新的对齐方式设置为一个字节对齐
#pragma pack(pop)
恢复对齐状态
#pragma pack(push)
保存对齐状态
#pragma pack(4)
设定为4字节对齐, 相当于 #pragma pack (push,4)
例:
#pragma pack(1)
struct A
{
int a;
double b;
};
#pragma pack()