IP地址的处理

union IP
{
	unsigned int ipaddr;
	unsigned char ar[4];
};

void Print_IP(unsigned int ipaddr)
{
	union IP ip;
	ip.ipaddr = ipaddr;
	for (int i = 3; i >= 0; --i)
	{
		printf("%d", ip.ar[i]);
		if (i > 0) 
			printf(".");
	}
}

int main()
{
	unsigned int ipaddr = 2576980377;
	Print_IP(ipaddr);
	return 0;
}

        也可以这样设计:

union IPNode
{
	unsigned int ipaddr;
	struct
	{
		unsigned char s1;
		unsigned char s2;
		unsigned char s3;
		unsigned char s4;
	};
};

void Print_IP(unsigned int ipaddr)
{
	IPNode ip;
	ip.ipaddr = ipaddr;
	printf("%d.%d.%d.%d", ip.s4, ip.s3, ip.s2, ip.s1);
}

int main()
{
	unsigned int ipaddr = 2576980377;
	Print_IP(ipaddr);
	return 0;
}
本程序在VS2017下运行通过

猜你喜欢

转载自blog.csdn.net/qq_41822235/article/details/80786729
今日推荐