pragma 常用于网络编程中自定义协议,指定结构体成员的字节对齐,当没有指定pragma时,程序会按照结构体中最长的变量进行字节的对齐
而使用pragma后,程序会先判断 pragma 定义的大小与结构体中最长变量的大小 ,取二者较小的进行字节对齐。
struct foo
{
char c1;
short s;
char c2;
int i;
long j;
};
sizeof foo 的大小 为24
#pragma pack(4)
struct foo
{
char c1;
short s;
char c2;
int i;
long j;}
sizeof foo 的大小 为20
#pragma pack()
本文介绍了在网络编程中如何利用pragma指令自定义结构体成员的字节对齐方式。通过对比不同pragma设置下结构体foo的内存占用差异,展示了pragma在优化内存布局方面的应用。
1399

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



