#pargma pack
#pragma pack();命令是用来设定编译器的字节对齐模式。
举着例子:
#pragma pack(push)
#pragma pack(4)//设置为4字节对齐
struct test{
int a;
double b;
char c;
};
#pragma pack(pop)
//
用sizeof(test)发现大小为16;如果是pack(8) 那么sizeof(test)大小是24;
呵呵,int 占用4个字节,double占用8字节,char占用1字节, 按照道理sizeof(test)应该是13,其实呢,这就是字节对齐问题了。编译器会按照2的次方来分配内存大小;
有问题baidu一下咯
举着例子:
#pragma pack(push)
#pragma pack(4)//设置为4字节对齐
struct test{
int a;
double b;
char c;
};
#pragma pack(pop)
//
用sizeof(test)发现大小为16;如果是pack(8) 那么sizeof(test)大小是24;
呵呵,int 占用4个字节,double占用8字节,char占用1字节, 按照道理sizeof(test)应该是13,其实呢,这就是字节对齐问题了。编译器会按照2的次方来分配内存大小;
有问题baidu一下咯