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。これは単なる16進定数であり、あなたのアプローチよりもさらに単純なアプローチです。

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

したがって、あなたのアプローチは問題ありません。

htonl()関数の代わりに標準を使用する必要がありますnetwork_byte_order

于 2012-08-11T15:45:47.213 に答える