把這個代碼片段爲例:關於聯盟的未使用的字段
union stack {
int a;
float b;
};
union stack overflow;
overflow.a = 5;
當我做了printf("%d",overflow.b);
我得到GCC和渦輪零。 當我做了一個printf("%f",overflow.b);
我得到零海灣合作委員會和垃圾渦輪。
你能解釋一下爲什麼會發生這種情況。 聯合中未使用的變量究竟發生了什麼?
另外,如果b
是int
,printf("%d",overflow.b);
給出了值5.爲什麼?
這幾乎解釋了吧:) – n0nChun 2011-03-06 18:15:24