C语言_大小端与union
来源:互联网 发布:会员积分管理系统源码 编辑:程序博客网 时间:2024/06/05 21:32
大端(big_endian):字数据的高字节存储在低地址中,而字数据的低字节存储在高地址中。
小端(little_endian):字数据的高字节存存储在高地址中,而字数据的低字节存储在低字节中。
而对union型成员的存取都是相对于该联合体基地址的偏移量为0处开始,也就是联合体的访问不论对哪个变量的存取都是从union的首地址位置开始的。
利用这个特性,我们可以判断当前系统是大端还是小端。
#include <stdio.h>union AA{ int i; char a[2];};int is_little_endian(){ union check { int i; char ch; }c; c.i = 1; return (c.ch == 1);}int main(){ int ret; union AA *p, u; p = &u; memset(&u, 0, sizeof(union AA)); p->a[0] = 0x39; p->a[1] = 0x38; printf("0x%x\n", p->i); if(is_little_endian()){ printf("little endian!\n"); } else{ printf("big endian!\n"); } return 0;}
test@test:~/tmp/cbase$ gcc union.c test@test:~/tmp/cbase$ ./a.out 0x3839little endian!
- C语言_大小端与union
- C语言中union与大小端模式的理解
- C语言union 关键字与大小端模式
- C语言 union 大小端 例子 解释
- 大小端与union
- c语言的union和大小端模式
- c语言 union与大端小端
- C语言UNION结构大小的问题
- union 与 大小端模式
- C语言sizeof(struct)与sizeof(union)
- C语言大小端
- C语言大小端
- c语言学习笔记(4)struct和union:柔性数组存储斐波那契数列以及union判断系统大小端
- c语言 union及 大端小端
- c语言 union
- C语言联合体union
- C语言 union
- C语言union关键字
- C/C++培训资料整理
- Oracle解锁表
- oracle备份还原
- 八零后活的并不轻松
- jQuery中的toggle方法
- C语言_大小端与union
- oracle 创建
- java读书笔记----equal和==的区别
- JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
- 三、基本语句
- linux接收函数recv
- MyEclipse快捷键大全
- 我做前端一年半
- 计算机系统维护培训资料整理