c - 结构中的 "s"是什么意思?

标签 c unix network-programming posix

这是一个简单的问题。 sin_family、sin_port、sin_addr、sin_zero中首字母“s”是什么意思?

struct sockaddr_in {
    short int          sin_family;  // Address family, AF_INET
    unsigned short int sin_port;    // Port number
    struct in_addr     sin_addr;    // Internet address
    unsigned char      sin_zero[8]; // Same size as struct sockaddr
};

谢谢。

最佳答案

这来自伯克利,那时候 LSD 仍然是合法的。他们的命名选择非常明显:/

不开玩笑,这可以追溯到非常早期的 K&R C,其中结构成员没有自己的命名空间。这要求您为不会与全局 namespace 中的标识符冲突的结构成员提供不同的名称。痛苦。常用的方法是在名称前加上结构名称的缩写。

因此“sockaddr_in”变成了“sin”。

请注意,今天枚举仍然存在这个问题,并不是以同样的方式解决的。

关于c - 结构中的 "s"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970087/

相关文章:

C : Input file does not sort in array

macos - 管道后找不到命令

java - 使用套接字处理生物指纹考勤机

linux - 如何通过UDP管理多个客户端和值类服务器之间的中间桥接服务器的 session ?

c++ - 如果输出是平台字节序,ICONV 写入 BOM 会出现问题

c - 如何在C中将数组值分配给另一个数组?

c - 伪造网络通信以在一台计算机上测试客户端/服务器

linux - 将变量从 SSH 服务器分配给本地机器变量

c - 获取二维动态分配字符串数组中单个字符串的长度

c++ - 无法读取客户端发送的所有消息