目录
利用联合体打印IP地址
#include <iostream>
using namespace std;
//联合体
联合体:存放顺序是所有成员都从低地址开始存放的,并且共用同一块内存的首地址。
联合体成员的对齐方式要适合全部的成员
//利用联合体打印IP地址
union isip{
unsigned int ip;
struct{
unsigned char a1,a2,a3,a4;
};
};
void print_ip(unsigned int ip)
{
isip rhs;
rhs.ip=ip;
printf("%d.%d.%d.%d\n",rhs.a1,rhs.a2,rhs.a3,rhs.a4);
}
int main()
{
unsigned int ip=192168111245;
print_ip(ip);
return 0;
}
利用联合体判断大小端
#include <iostream>
using namespace std;
//联合体判断大小端
union res{
int a;
char b;
};
int ret1()
{
res ls;
ls.a=1;
return ls.b;
}
int ret2()
{
int a=1;
char*p=(char*)&a;
return *p;
}
int main()
{
int res1=ret1();
if(res1==1)
printf("小端存储\n");
else
printf("大端存储\n");
int res2=ret2();
if(res2==1)
printf("小端存储\n");
else
printf("大端存储\n");
return 0;
}