[英]sizeof and unsigned char array error? (c/c++)
我写了这个结构:
struct bmpheader {
unsigned char magic[2];
unsigned int fsize;
unsigned int unused;
unsigned int pixdata_offset;
unsigned int headersize;
unsigned int width;
unsigned int height;
unsigned short planes_color;
unsigned short bpp;
unsigned int compression;
unsigned int sizeofpix;
unsigned int resolutionx;
unsigned int resolutiony;
unsigned int colors;
unsigned int imp_colors;
};
而且我对sizeof函数有问题。 当我指望我的手指时,它对我来说每次都是54个字节。 sizeof函数每次都会给我56。为什么? 问题是无符号字符数组,当我删除magic [2]数组时,sizeof是52? sizeof(header.magic)显示为2。据我所知,unsigned char是1字节类型?
预先感谢您的回复。
马辛
因为(在您的计算机上)一个int
必须放在4字节地址上,或者在放在4字节地址上时效率更高。 编译器将在char数组之后插入两个填充字节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.