“注意,尽管一个字包含了4个字节,它仍然只有一个地址。至于它的地址是它最左边那个字节的位置还是最右边那个字节的位置,不同的机器有不同的规定。另一个需要注意的硬件事项是边界对齐(boundary alignment)。在要求边界对齐的机器上,整型值存储的起始位置只能是某些特定的字节,通常是2或4的倍数。”
——难道最近项目中碰到问题是硬件造成的对齐问题?原来在服务器上用的程序现在在普通PC机装上Linux运行,好多结构体的成员都取不到正确的值。虽然猜测是对齐问题,但原代码中有使用#pragma pack(1) 或 #pragma pack(push,1)。莫非普通电脑上不能1字节对齐而服务器可以?
周一去试试
转载于:https://www.cnblogs.com/zcdqs/archive/2013/03/16/2963943.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110190.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...