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