[问题] 有关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