No, 現代 compiler, 一般計,
如果 define structure
struct x {
unsigned char a, b, c, d, e, f, g, h; ...
seasky 發表於 2016-3-17 08:50 
http://ideone.com/8b1uA4
我諗你搞錯左少少alignment既concept……
compiler係要做到「係struct x array入面,每個struct x既每個field既address都要同果個field既type對齊」。
所以如果係- struct x {
- char a;
- int b;
- };
複製代碼 咁由於b要對齊到sizeof(int),a後面會多3個bytes做padding,於是sizeof(struct x)會係8(假設sizeof(int) == 4)。
但你講既case,由於sizeof(unsigned char) == 1,點擺都冇問題,所以唔會有padding。
via HKEPC Reader for Android |