所以基本上我想用特定地址初始化 in_addr_t at 并从文本中解析它是没有意义的。这样做很诱人:
in_addr_t foo = network_byte_order(127 << 24 | 0 << 16 | 0 << 8 | 99 << 0};
对于 127.0.0.99,然后将其包装在宏中,以便它可以方便地用于任何地址...但是我想首先检查是否有人知道任何现有的宏,最好是“官方”的?
最佳答案
目前没有适用于此目的的宏。查看这个示例,了解如何在 netinet/in.h
中定义 INADDR_LOOPBACK
。它只是一个十六进制常量,比您的方法更简单:
# define INADDR_LOOPBACK ((in_addr_t) 0x7f000001) /* Inet 127.0.0.1. */
所以你的方法没问题。
您应该使用标准的 htonl()
代替 network_byte_order
函数。
关于c - 初始化一个 in_addr_t 而不进行文本解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11909224/