C关于基础类型占内存大小的疑惑
typedef struct tagFileHeader
{
unsigned short tp;
unsigned long sz;
unsigned short rs1;
unsigned short rs2;
unsigned long off;
}FileHeader;
测试过, 本机
sizeof(unsigned short) = 2;
sizeof(unsigned long) = 4;
为什么:sizeof(FileHeader) = 16????好迷惑
win8_64环境 vs2013下测试。想请教,是否是由于64位造成的?但是按道理不应该啊,请高手指导一下
[解决办法]
100%字节对齐的问题