1
struct  ifreq {
    char    ifr_name[IFNAMSIZ];             
    union {
            caddr_t ifr_d;
    } ifr;
};

ここで彼らはユニオンを使用しましたが、そこで使用されている要素が1つしかないのに、なぜそれらが使用されたのかわかりませんでした。使用する必要のある要素が2〜3個ある場合にのみ、ユニオンを使用することを考えています。

ありがとう

4

1 に答える 1

3

たくさんの可能性。しかし、この場合は、対応する Linux ヘッダーから定義が切り取られ、必要な部分だけが取り出されたことが原因のようです。struct ifreq通常は次のようになります。

struct ifreq {
    char ifr_name[IFNAMSIZ]; /* Interface name */
    union {
        ...
    };
};
于 2012-09-12T01:59:11.427 に答える