[問題] 有關union

作者: leolin860607 (人生到處知何似)   2016-05-30 10:23:42
c語言
如何填滿union剩下的空間
假如union裡面有int 和char
如何在不影響資料的情況下用char填滿??
這是之前老師隨口問的問題有提到解答
但是我忘記了
記得好像有使用到struct
可以請板上大大指點迷津嗎?
union r{
int i;
struct{short a;shortb;}x;
};
作者: tjjh89017 (伊達政宗)   2016-05-30 10:56:00
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]; 這樣就滿了阿
作者: tjjh89017 (伊達政宗)   2016-05-31 15:47:00
那個~你好像不太懂char b[0];的效果欸wwwwwwwww
作者: lc85301 (pomelocandy)   2016-05-31 21:30:00
這樣是有個用法,當你要檢視一個int 在記憶體內的排列時可以用那個char 去印出內容
作者: EdisonX (卡卡獸)   2016-05-31 23:17:00
t大的 char b[0]; 類似的變型/應用不少 , 有興趣可找一下關鍵字 : flexible array這地方用 char b[0] 好處是對 union 做修改時, b 不用改變大小 , 但在標準上 (C99) 仍待考驗。

Links booklink

Contact Us: admin [ a t ] ucptt.com