D プログラミング言語用のlibdnetのラッパーを作成しようとしています。私が遭遇した問題は、 addr.h の変換中に eth_addr_t、ip_addr_t、および ip6_addr_t の下線の型がわからないことです。最後の謎の型は sockaddr です
また、常に false になる do while ループがある理由にも興味があります。
#define addr_pack(addr, type, bits, data, len) do { \
(addr)->addr_type = type; \
(addr)->addr_bits = bits; \
memmove((addr)->addr_data8, (char *)data, len); \
} while (0)
C がマクロ内のコードを実行する必要がありますか?