[英]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.