c語言
如何填滿union剩下的空間
假如union裡面有int 和char
如何在不影響資料的情況下用char填滿??
這是之前老師隨口問的問題有提到解答
但是我忘記了
記得好像有使用到struct
可以請板上大大指點迷津嗎?
union r{
int i;
struct{short a;shortb;}x;
};
union A{int a;char b[0];};忘記這樣能不能了,應該是有辦法吧(?
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2016-05-30 12:43:00在討論能不能之前, 我想先知道這樣做的意義是什麼...
作者:
bibo9901 (function(){})()
2016-05-30 12:58:00同意樓上. 用union就是代表某些空間不需要用到, 為什麼又想把他拿出來用..WTF?
作者:
chuegou (chuegou)
2016-05-30 13:03:00同一樓 char b[4]; 這樣就滿了阿
那個~你好像不太懂char b[0];的效果欸wwwwwwwww
作者:
lc85301 (pomelocandy)
2016-05-31 21:30:00這樣是有個用法,當你要檢視一個int 在記憶體內的排列時可以用那個char 去印出內容
作者:
EdisonX (卡卡獸)
2016-05-31 23:17:00t大的 char b[0]; 類似的變型/應用不少 , 有興趣可找一下關鍵字 : flexible array這地方用 char b[0] 好處是對 union 做修改時, b 不用改變大小 , 但在標準上 (C99) 仍待考驗。