这里有个隐含假设,即,整数也是用四字节表示的。这样的假设下,四字节IP地址和整数在内存中无差别。
比如:
#include <stdio.h>
typedef struct IPAddr_
{
unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;
}IPAddr_t;
typedef union u_
{
int x;
IPAddr_t y;
}u; // 整数与IP地址用共用体表示
void main()
{
u testu;
testu.x = 303199946; // 也可用“scanf("%d",&(testu.x)); ”输入整数
// 输出IP地址202.118.18.18
printf("%d.%d.%d.%d",testu.y.a,testu.y.b,testu.y.c,testu.y.d);
return;
}
输出注意大端小端
输入4字节整数,输出IPv4地址
最新推荐文章于 2024-05-20 16:43:29 发布