1 节约内存:
这一功能可以参考我的其它博文:
https://i.cnblogs.com/EditPosts.aspx?postid=8545190&update=1
2 测试机器大小端:
大端:高字节存在低地址(高在前);
小段:高字节在高地址(高在后);
union的一特性在于所有的成员共享一段内存;
上代码:
1 // TemplateExe1.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <iostream> 6 #include "atlstr.h" 7 using namespace std; 8 union Num 9 { 10 int a; 11 unsigned char b; 12 13 }uNum; 14 CString CheckCpu() 15 { 16 uNum.a = 0x00000001; 17 return(uNum.b == 1 ? "小端" : "大端"); 18 } 19 void main() 20 { 21 22 printf("%s",CheckCpu()); 23 getchar(); 24 }
a=0x00000001;
高位0,低位1:
如果高位(0)在低地址,则是大端;低位(1)在低地址,则是小端;
一个union类型,而unsigned char b只占一个字节,要么为:0x00,要么是0x01。
说明:uNum.a=1;只是一种情况,只要a的32bit中,最高位和最低位不一致即可