UNIX 网络编程中的前缀是什么意思?
What does the prefixes mean in UNIX NETWORK PROGRAMMING?
当我阅读 Unix 网络编程 一书时,有许多套接字 apis/types 具有 sin_addr
和 sin
这样的前缀,inet_addr
与 inet
,以及 in_addr_t
与 in
。这些前缀实际上是什么意思,即全名是什么?
我相信在早期结构成员必须是唯一的。对两个不同结构中的成员使用相同的名称失败。对于帮助使用 C 结构和预处理器宏的汇编宏,这仍然(并且一直是)正确。
因此,过去的结构和常量使用通常从结构名称或上下文派生的前缀。例如。 struct addressinfo 使用前缀 ai,struct sockaddr 使用 sa,struct sockaddr_in 使用 sin 等等。
为每个成员使用唯一的名称允许对 C 和 asm 代码使用相同的名称,这使得两种语言的代码阅读和编写更加容易。切换语言时无需脑子切换曲目。
当我阅读 Unix 网络编程 一书时,有许多套接字 apis/types 具有 sin_addr
和 sin
这样的前缀,inet_addr
与 inet
,以及 in_addr_t
与 in
。这些前缀实际上是什么意思,即全名是什么?
我相信在早期结构成员必须是唯一的。对两个不同结构中的成员使用相同的名称失败。对于帮助使用 C 结构和预处理器宏的汇编宏,这仍然(并且一直是)正确。
因此,过去的结构和常量使用通常从结构名称或上下文派生的前缀。例如。 struct addressinfo 使用前缀 ai,struct sockaddr 使用 sa,struct sockaddr_in 使用 sin 等等。
为每个成员使用唯一的名称允许对 C 和 asm 代码使用相同的名称,这使得两种语言的代码阅读和编写更加容易。切换语言时无需脑子切换曲目。