我跑過這段代碼,他們正試圖從float轉換爲int這段代碼做了什麼樣的轉換?
int val[5];
union {
int i;
float f;
} conv;
...
val is updated with some value
...
case OUT_FORMAT_FLOAT:
for (i = 0; i < count; i++) {
conv.f = val[i];
val[i] = conv.i;
}
但我只是無法理解這是如何工作的。所述val[i]
被分配給conv.f
然後conv.i
用於存儲備份的值成val[i]
。 conv
是一個聯合類型,因爲我們使用的是f
,i
將不具有有效的值嗎?
我在這裏錯過了什麼嗎?
請參考http://www.cplusplus.com/doc/tutorial/other_data_types/#unions – hdost