c - 下面的 union 是什么意思?

标签 c unions

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

这里他们使用了 union,我不明白他们为什么在只有一个元素的情况下使用? 我有一个想法,只有在需要使用 2-3 个元素时才使用 union。

谢谢

最佳答案

无限可能。但是,在这种情况下,看起来是因为定义被从相应的 Linux header 中切掉了,他们只是拿走了他们需要的部分。 struct ifreq 通常是这样的:

struct ifreq {
    char ifr_name[IFNAMSIZ]; /* Interface name */
    union {
        ...
    };
};

关于c - 下面的 union 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12380242/

相关文章:

c - 我的程序在 C 中实现堆栈有什么问题

c++ - 如何使用 LibSoX 混合两个 wav 文件

c++ - Union hack 用于字节序测试和字节交换

具有非连续布局的 C 位域元素

c - 在 c 中的结构中放置一个 union 是什么意思?

C 嵌套 union 和结构

c - 8051 无法转储十六进制文件

c - 如何解释输出?

chdir 在 c 中不起作用

c++ - 启用 C++11 的 OpenCL vector 类型 : Can't access unioned components x, y,z