0

所以基本上我想用一个特定的地址初始化一个 in_addr_t 并从文本中解析它是没有意义的。这样做很诱人:

in_addr_t foo = network_byte_order(127 << 24 | 0 << 16 | 0 << 8 | 99 << 0};

对于 127.0.0.99,然后将其包装在一个宏中,以便它适用于任何地址......但是我想先检查是否有人知道任何现有的宏,最好是“官方”?

4

1 回答 1

1

没有用于此的现有宏。看看这个例子是如何INADDR_LOOPBACK定义的netinet/in.h。它只是一个十六进制常量,比您的方法更简单:

# define INADDR_LOOPBACK        ((in_addr_t) 0x7f000001) /* Inet 127.0.0.1.  */

所以你的方法很好。

您应该使用标准htonl()代替您的network_byte_order功能。

于 2012-08-11T15:45:47.213 回答