联合体union
来源:互联网 发布:怎样在淘宝上捡漏 编辑:程序博客网 时间:2024/06/01 07:33
1.union
联合是一种特殊的类。一个union可以有多个数据成员,但是在任意时刻只有一个数据成员可以有值。当给某个成员赋值之后,其他成员就成未定义状态。(共享一个内存,被覆盖了)
union不能含有引用类型成员,含有构造函数和析构函数的类类型也可以作为union成员。
可以指定public、protected和private,默认是public。
不能继承和被继承。
先来看看union类型的大小:
#include <iostream>using namespace std;union Test{char cv;int iv;double dv;};int main(){cout << sizeof(Test) << endl; //输出8return 0;}
其大小为最大成员类型的大小。
2.匿名union
匿名union不能包含受保护的成员或私有成员,也不能定义成员函数。
在匿名union定义的作用域内union的成员都可以直接访问。
#include <iostream>using namespace std;int main(){union{char cv;int iv;double dv;};cv = 'a';return 0;}注意:如果匿名union定义在全局,必须定义成static。
#include <iostream>using namespace std;static union{char cv;int iv;double dv;};int main(){cv = 'a';return 0;}3.可以用union判断主机的字节序
#include <iostream>using namespace std;union Test{char cv;int iv;};int main(){Test t;t.iv = 0xf0f1f2f3;cout << hex << t.iv << endl; //输出:f0f1f2f3cout << hex << int(t.cv) << endl; //输出:fffffff3return 0;}
0 0
- 联合体union
- 联合体union
- union联合体
- 联合体union
- 联合体union
- 联合体union
- 联合体union
- 联合体union
- 联合体 union
- union联合体的妙用
- union 联合体的测试
- C语言联合体union
- 联合体union的用法
- 关于Union 联合体
- union 共用体 联合体
- 关于UNION联合体
- C语言联合体union
- c语言 union 联合体
- 解决linux挂载U盘时:Not authorized to perform operation
- 【cocos2dx 3.x】延时调用
- XCode7添加自定义framework 比如加入swiftjson.framework框架后运行真机出现dyld: Library not loaded的解决方法
- linux 下定时器timer的使用
- 【转载】 C++文件读写详解(ofstream,ifstream,fstream)
- 联合体union
- Java基础
- 基址重定位
- s:iterator 遍历list
- Qt组播(多播)总结
- Android学习笔记----Intent基本用法
- Android Studio修改packagename
- [LeetCode]Increasing Triplet Subsequence
- Xshell从windows与服务器之间的文件传送rz/sz