C++---联合体(union)的一些测试
来源:互联网 发布:剑灵人族捏脸数据图表 编辑:程序博客网 时间:2024/06/02 23:45
大小端模式
大端模式,是指数据的
高字节
保存在内存的低地址
中,而数据的低字节
保存在内存的高地址
中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
小端模式,是指数据的高字节
保存在内存的高地址
中,而数据的低字节
保存在内存的低地址
中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
测试
union data { int a; int b[2]; float c; double d; char e[4]; }test; test.a = 0x11223344; //test.c = 0x11223344; //test.d = 0x1122334455667788; printf("%d %d %d\n",sizeof(data),sizeof(test.c),sizeof(test.d)); // 8 4 8 printf("%x %x %x %x\n",&test.e[0],&test.e[1],&test.e[2],&test.e[3]);// 28fe40 28fe41 28fe42 28fe43 printf("%x %x %x %x\n",test.e[0],test.e[1],test.e[2],test.e[3]); // 44 33 22 11 printf("0x%x\n",test.b[0]); // 0x11223344 printf("0x%x\n",test.d); // 0x11223344 printf("0x%x\n",test.c); // 0x80000000 printf("0x%x 0x%x 0x%x 0x%x\n",&test,&test.a,&test.c,&test.d); // 0x28fe40 0x28fe40 0x28fe40 0x28fe40
- 可以知道联合体变量test的地址和联合体内的成员的地址都是一样的
- 可以知道此机器为小端模式(网络传输:大端;Java:大端;ARM:大端;Intel:小端)
- 整个联合体的大小跟联合体内的最大的一个成员的大小相同
- int类型和float类型在内存中存放的格式是不一样的
0 0
- C++---联合体(union)的一些测试
- union 联合体的测试
- C语言中联合体union的使用
- C语言中联合体union的使用
- C语言中联合体union的使用
- C语言中联合体union的使用
- c语言-union联合体的使用
- C语言中联合体union的使用
- C语言中联合体union的使用
- C语言联合体union
- C语言联合体union
- c语言 union 联合体
- C语言联合体 union
- C 联合体 union
- C经典 联合体union
- [C++]union联合体总结
- C语言联合体(union)的使用方法及其本质-union
- union联合体的妙用
- ORA-19905: log_archive_format must contain %s, %t and %r
- 两种include方式及filter中的dispatcher
- 实用的 Python —— 快速进行相关计算
- LeetCode Power of Three JAVA
- QT生成excel文件
- C++---联合体(union)的一些测试
- gif没有半透明效果
- python常用的一些东西——sys、os等(转)
- Nginx在Linux和windows下的安装使用
- 高速PCB设计中的阻抗匹配
- 什么是WebService?
- Netty in Action (十四) 第五章节 第三部分 ByteBufHolder,ByteBuf分配,计数引用
- 计算文件夹内视频总长度工具
- CocoaPod的安装