union
来源:互联网 发布:adc0804数据手册 编辑:程序博客网 时间:2024/06/05 11:45
1、union是为了让【不同的数据项】存放到【同一段内存】空间中。
2、union数据结构中的多个成员共用一段内存空间,空间大小由最大的成员决定。
3、union使用的范例如下:
1、 union test { unsigned int a; unsigned short b; unsigned char c; }union_data; printf("size: %d\n",sizeof(union_data)); union_data.a = 0x11223344; //内存中 44 33 22 11 union_data.b = 0x5566; //内存中 (66) (55) 22 11 union_data.c = 0x88; //内存中 (88) 55 22 11 printf("%x %x %x\n",union_data.a,union_data.b,union_data.c);
2、struct TypeData{ int type; //用来区分union test1中使用哪个结构体 union test1 { struct data1{ unsigned char a; unsigned char b; unsigned int c; }d1; struct data2{ unsigned char a; unsigned char b; }d2; struct data3{ unsigned int c; }d3; }union_data1;}* p_struct_data1;void ShowValue(struct TypeData* data){ switch(data->type) { case 0x01: printf("%x %x %x\n",data->union_data1.d1.a,data->union_data1.d1.b,data->union_data1.d1.c); break; case 0x02: printf("%x %x\n",data->union_data1.d2.a,data->union_data1.d2.b); break; case 0x03: printf("%x\n",data->union_data1.d3.c); break; default: break; }} struct TypeData* p_struct_data1; printf("size: %d\n",sizeof(*p_struct_data1)); //12 unsigned int data01[3] = {0x01,0x44332211,0x88776655}; unsigned int data02[3] = {0x02,0x44332211,0x88776655}; unsigned int data03[3] = {0x03,0x44332211,0x88776655}; p_struct_data1 = (struct TypeData *)&data01; ShowValue(p_struct_data1); printf("--------------------------------\n"); p_struct_data1 = (struct TypeData *)&data02; ShowValue(p_struct_data1); printf("--------------------------------\n"); p_struct_data1 = (struct TypeData *)&data03; ShowValue(p_struct_data1); printf("--------------------------------\n");
0 0
- Union
- union
- union
- UNION
- union
- union
- union
- UNION
- union
- union
- Union
- union
- union
- union
- union
- union
- union
- UNION
- RTMP直播应用与延时分析
- ueditor百度编辑器 自定义— 按钮、图标、事件、窗口页面
- 移除jboss响应中的中间件信息
- mybatis-中级篇-RoleMapper.java
- *p++中*和++的优先级问题
- union
- AngularJS的踏坑经验
- 数据库连接池
- java实现给图片添加水印
- Ajax XMLHTTPRequest对象
- 第一行代码阅读笔记---基本知识
- 链路层常见报文格式及长度
- Tutorial: Using Beacon and iBeacon Technologies on Your iPhone / iPad with PubNub | Guest Post
- Android事件分发机制源码分析之ViewGroup篇