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) 仍待考验。