QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 898|回复: 5

本应该是14字节的结构体为什么成了16字节?

[复制链接]
发表于 2005-3-22 14:13:38 | 显示全部楼层 |阅读模式
我的测试程序是这样的:


typedef struct ASD {
        unsigned short int        bfType;
        unsigned int                bfSize;
        unsigned short int        bfReserved1;
        unsigned short int        bfReserved2;
        unsigned int                bfOffBits;
} FILEHEADER;

int main(int argc, char *argv[])
{
        FILEHEADER a;
        printf("%d\n",sizeof(a));
       
        return 0;       
}

按理应该输出14的,可是程序却输出16,使我无法再作后面的东西。不知道这是为什么,请帮忙!!谢谢!
发表于 2005-3-22 14:27:27 | 显示全部楼层
字节对齐问题,short int只有三个,但是要占用2个4位
回复

使用道具 举报

发表于 2005-3-22 14:31:10 | 显示全部楼层
http://blog.blogchina.com/upload/2005-03-13/2005031322365543946.pdf
回复

使用道具 举报

 楼主| 发表于 2005-3-22 14:55:12 | 显示全部楼层
FILEHEADER是bmp文件的文件头,是连续的14个字节,我要把这14字节读入
FILEHEADER a;中,我该怎么做?
回复

使用道具 举报

发表于 2005-3-22 15:00:31 | 显示全部楼层
不能逐个给结构变量赋值?
回复

使用道具 举报

 楼主| 发表于 2005-3-22 15:02:48 | 显示全部楼层
谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 11:40 , Processed in 0.039581 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表