Barnyard2 の sf_ip.hソース コードを見ています。sfip_t stuct、特にユニオンブロックを理解していません。
typedef struct _ip {
int family;
int bits;
/* see sfip_size(): these address bytes
* must be the last field in this struct */
union
{
u_int8_t u6_addr8[16];
u_int16_t u6_addr16[8];
u_int32_t u6_addr32[4];
// u_int64_t u6_addr64[2];
} ip;
#define ip8 ip.u6_addr8
#define ip16 ip.u6_addr16
#define ip32 ip.u6_addr32
// #define ip64 ip.u6_addr64
} sfip_t;
なぜ配列を使用しているのですか?ドキュメントを探してみましたが、Google はうまくいきませんでした。ここで何が行われているのか、誰か説明してもらえますか?