union 与 大小端模式
来源:互联网 发布:苏州迈科网络 公告 编辑:程序博客网 时间:2024/06/16 06:37
union 与大小端模式
一、大端模式和小端模式
大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。
二、union变量在大小端模式下的输出
int main()
{
union
{
int i;
char a[2];
}*p, u;
p=&u;
u.i = 0;
p->a[0]= 0x12;
p->a[1]= 0x34;
printf("i = 0x%x\n", u.i);
}
{
union
{
int i;
char a[2];
}*p, u;
p=&u;
u.i = 0;
p->a[0]= 0x12;
p->a[1]= 0x34;
printf("i = 0x%x\n", u.i);
}
输出:小端模式 —— 0x3412;大端模式 —— 0x1234。
解析:union型数据所占的空间等于其最大的成员所占的空间。对 union型的成员的存取都是相对于该联合体基地址的偏移量为 0 处开始,也就是联合体的访问不论对哪个变量的存取都是从 union的首地址位置开始。
三、使用union测试系统的存储模式
int main()
{
union
{
int i;
char a[2];
}*p, u;
p=&u;
u.i = 0x3412;
if (0x12 == u.a[0])
{
printf("Little_endian\n");
}
else
{
printf("Big_endian\n");
}
}
{
union
{
int i;
char a[2];
}*p, u;
p=&u;
u.i = 0x3412;
if (0x12 == u.a[0])
{
printf("Little_endian\n");
}
else
{
printf("Big_endian\n");
}
}
来源:原创<zhxianbin@163.com>
- union 与 大小端模式
- 大小端与union
- union体与大小端模式的探讨
- C语言中union与大小端模式的理解
- C语言union 关键字与大小端模式
- Union -- 公用体判断大小端模式
- 大小端模式解析(联合体union)
- C语言_大小端与union
- 检测系统的大小端模式--利用union
- c语言的union和大小端模式
- 大小端模式对union 类型数据的影响
- union判断大小端
- union 、大小端字节存储
- union/指针,测试大小端
- 存储模式(大小端模式)对union 类型数据的影响
- struct与union求大小的区别
- Union大小
- 位域应用——大小端模式对union体的影响的反思。
- 极限测试之Matlab与Forcal矩阵运算效率测试
- MS SQL Server查询优化方法
- 验证码总是错误问题的总结
- JSTL-国际化标签
- JSTL-Function标签
- union 与 大小端模式
- 网络开发 常用工具软件 介绍
- 基于OPenCV和MFC的读图程序
- 极限测试之Matlab与Forcal动态内存管理效率
- PHP内核介绍及扩展开发指南—高级主题
- 如何调试InfoPath的后台代码?
- How WebKit's loader works
- <com原理>与<com内幕>的聚合实现部分。
- TabActivity的使用