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

在这里他们使用了联合,我不明白为什么当那里只使用一个元素时他们使用?我有一个想法,只有在需要使用 2-3 个元素时才使用联合。

谢谢

4

1 回答 1

3

大量的可能性。但是,在这种情况下,似乎是因为定义是从相应的 Linux 头文件中删除的,他们只取了他们需要的部分。struct ifreq看起来像这样,通常:

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