——c语言强制对齐的有关问题
求助 ——c语言强制对齐的问题。
#pragma pack(n)
比如
#pragma pack(4)
struct stu{
int a;
char b;
short c;
};
字节是怎么填充的,为什么有空字节,整个结构体的字节是多少?求详解0.0
------解决方案--------------------
http://blog.****.net/21aspnet/article/details/6729724
------解决方案--------------------
你这个肯定是8,#pragma pack(4) 在32位机器上默认就是这样,4位对齐,你只有#pragma pack(1)才会得到sizeof是7,对齐就是在内存中的最小单位。
------解决方案--------------------
字节对齐是为了整存争取,想你说的#pragma pack(4)是按四字节进行整存争取,定义的结果体为了整存争取要进行四字节对齐,就是不足4个字节就补充dummy。
#pragma pack(n)
比如
#pragma pack(4)
struct stu{
int a;
char b;
short c;
};
字节是怎么填充的,为什么有空字节,整个结构体的字节是多少?求详解0.0
C
------解决方案--------------------
http://blog.****.net/21aspnet/article/details/6729724
------解决方案--------------------
你这个肯定是8,#pragma pack(4) 在32位机器上默认就是这样,4位对齐,你只有#pragma pack(1)才会得到sizeof是7,对齐就是在内存中的最小单位。
------解决方案--------------------
字节对齐是为了整存争取,想你说的#pragma pack(4)是按四字节进行整存争取,定义的结果体为了整存争取要进行四字节对齐,就是不足4个字节就补充dummy。