目录
利用联合体打印IP地址
一般处理
void PrintIP(unsigned int ip)
{
int i = 0;
int a =0;
for(i = 0;i<4;++i)
{
a = ip & 0x0ff;
printf("%d",a);
ip>>= 8;
if(ip!=0)//少了这一步判断会多打出来一个点
printf(".");
}
printf("\n");
}
#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;
}