亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

問個Struct的對齊問題?

聽了半天結構體的對齊方式,感覺還是沒聽懂。請問下面的例子是怎么計算出來的呀?

//st1類型占8字節

struct st1{

? ? int a;

? ? short b;

? ? char c;

};


//st2類型的占12字節 調了st1數據成員的次序

struct st2{

? ? char a;

? ? int b;

? ? short c;

};


//st3類型的占16字節 不論如何調序結果都是16字節

struct st3{

? ? int a;

? ? char b;

? ? double c;

};

另外,聽說GCC和標準C在對齊方面有所區別,請問又是怎么回事呢?

正在回答

2 回答

標準對此沒有規定,完全由編譯器自己實現。自己寫代碼時不要依賴這種“未指定”的行為。

想要知道你使用的編譯器是怎樣實現的,就用gdb打印出數據結構看一下吧。

0 回復 有任何疑惑可以回復我~
#1

帥踢鍋 提問者

非常感謝!
2015-08-30 回復 有任何疑惑可以回復我~

st3占用的是16?我手動計算是12啊,請指教

0 回復 有任何疑惑可以回復我~
#1

慕工程2008534

我知道我問題出在哪了,double所占字節是8
2017-07-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

問個Struct的對齊問題?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號