#include<iostream>
using namespace std;
#pragma pack(1)
struct test{
char c;
short s1;
short s2;
int i;
};
int main()
{
cout<<sizeof(test)<<endl;
return 0;
}
如果没有使用#pragma pack,那么sizeof(test)=1+1(补齐)+2+2+2(补齐)+4=12
然而#pragma pack设为1,那么自身的对齐分别为1、2、2、4,其结果为9.
本文通过一个C++示例介绍了结构体内存对齐的概念及其如何影响结构体的大小。通过对不同对齐方式的比较,展示了如何使用#pragmapack来控制内存对齐,从而减少内存占用。

558

被折叠的 条评论
为什么被折叠?



