c/c++结构体struct的使用,只有一个成员为什么要定义成结构体比如下面这个,struct in_addr{unsigned long s_addr;}struct sockaddr_in{short int sin_family; //表示所属地址簇,TCP/IP必须是AF_INETunsigned short int sin_port;

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 07:50:54
c/c++结构体struct的使用,只有一个成员为什么要定义成结构体比如下面这个,struct in_addr{unsigned long s_addr;}struct sockaddr_in{short int sin_family; //表示所属地址簇,TCP/IP必须是AF_INETunsigned short int sin_port;

c/c++结构体struct的使用,只有一个成员为什么要定义成结构体比如下面这个,struct in_addr{unsigned long s_addr;}struct sockaddr_in{short int sin_family; //表示所属地址簇,TCP/IP必须是AF_INETunsigned short int sin_port;
c/c++结构体struct的使用,只有一个成员为什么要定义成结构体
比如下面这个,
struct in_addr
{
unsigned long s_addr;
}
struct sockaddr_in
{
short int sin_family; //表示所属地址簇,TCP/IP必须是AF_INET
unsigned short int sin_port; //表示端口号
struct in_addr sin_addr; //表示32位的IP地址,用in_addr结构表示
unsigned char sin_zero[8]; //表示全部填充0,保证和sockaddr大小相同
}
struct in_addr sin_addr那里直接用unsigned long s_addr不行吗,为什么要用结构体来表示?

c/c++结构体struct的使用,只有一个成员为什么要定义成结构体比如下面这个,struct in_addr{unsigned long s_addr;}struct sockaddr_in{short int sin_family; //表示所属地址簇,TCP/IP必须是AF_INETunsigned short int sin_port;
方便以后扩展.这个只是IPv4的协议族,IPV6好像就不支持了吧.就算IPV6还能用,以后还有IPV8,IPV10.每一个都在sockeaddr里面加一个不觉得很晕吗?所以定义一个结构体,不觉得逻辑更清晰吗?