欢迎各界计算机爱好者加入,弘扬极客精神!

简单说下C语言的union关键字的用法,什么时候用共用体

0 喜欢 0 不喜欢
为什么广义表定义中用了这个东西

struct GLNode{

union{…};//里面很像struct结构体的声明

……

};
最新提问 1月 31, 2016 分类:C/C++ | 用户: peter (9,864 分)  

5 个回答

1 喜欢 0 不喜欢
 
已采纳
最新回答 2月 20, 2016 用户: 凌波微步 (7,030 分)  
采纳于 2月 22, 2016 用户:peter
不知道你仔细看了么,例4没那么好理解,还涉及16进制assci码问题
1 喜欢 0 不喜欢
当你想创建多个变量又想节省占用空间时用union

union里可以定义多个成员,其大小由占用字节最大的成员的大小决定。这些成员共享一个内存,所以对于占用字节相同的成员,其中一个被赋值也就会覆盖另一个的值。

比如union{int a; int b;},之后在主函数里先给a赋值5,再给b赋值10,最后输出结果a和b都是10
最新回答 2月 2, 2016 用户: 我好像在哪见过你 (3,976 分)  
1 喜欢 0 不喜欢

1、union中可以定义多个成员,union的大小由最大的成员的大小决定。
2、union成员共享同一块大小的内存,一次只能使用其中的一个成员。
3、对某一个成员赋值,会覆盖其他成员的值

4、联合体union的存放顺序是所有成员都从低地址开始存放的。

最新回答 2月 12, 2016 用户: ly (5,144 分)  
楼下回答时,还是详细贴带有主函数的详细的能运行的代码例子吧,越简单明了越好,不喜欢伪代码。
0 喜欢 0 不喜欢

首先可以定义多个成员,其大小由占用字节最大的成员的大小决定。然后这些成员共享一个内存,所以对于占用字节相同的成员,其中一个被赋值也就会覆盖另一个的值。

最新回答 2月 15, 2016 用户: yuqiancheng (3,398 分)  
1 喜欢 0 不喜欢
union在C中本质上是一个结构体,用法和struct相似,类型使用时,要在名称钱加上关键字union

在调用时用后缀表达式expression.identifier的形式来调用成员:

a.member1=10;//a为union的变量

p->member1=20;//p为union的指针
最新回答 2月 17, 2016 用户: jiangpengfeng (3,046 分)  
...