課程
/后端開發
/C
/Linux C語言結構體
每個成員相對于結構體首地址的偏移是當前成員所占內存大小的整數倍,那么c的偏移量就是8;
內存大小=最后一個成員的偏移量(也就是8)+最后一個成員的大小(8)+末尾填充字節數(0)=16;
是這個樣子嗎?
2015-08-10
源自:Linux C語言結構體 4-1
正在回答
int的字節數為4,char的字節數為 1,double的字節數為 8;
偏移量=5
最后一個成員的大小是8
填充字節數 =3(填充字節數=最后一個成員的最小整數倍數-偏移量;偏移量必須是最后一個成員的整數倍,不然就得填充字節,比如這里最后一個成員的大小是8,那么8的最小整數倍是8,所以8-3=5)
?內存大小=5+8+3=16
4+4+8
char后面要做字節對齊,空三個字節double開始
一葉知秋zxw 提問者
舉報
C語言的深入,幫助小伙伴們進一步的理解C語言,趕緊看過來
2 回答共用體所占內存大小問題
3 回答結構體指針
1 回答虛數類型結構體
1 回答結構體概念的理解
3 回答為什么可以在結構體里面聲明一個結構體指針呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-08-08
int的字節數為4,char的字節數為 1,double的字節數為 8;
偏移量=5
最后一個成員的大小是8
填充字節數 =3(填充字節數=最后一個成員的最小整數倍數-偏移量;偏移量必須是最后一個成員的整數倍,不然就得填充字節,比如這里最后一個成員的大小是8,那么8的最小整數倍是8,所以8-3=5)
?內存大小=5+8+3=16
2015-08-11
4+4+8
char后面要做字節對齊,空三個字節double開始