如何访问存在于结构中的 union 成员?
考虑代码片段:
struct Emp {
char name[20];
union address {
char addr[50];
};
};
struct Emp e;
使用 e
,如何在不创建任何 union 对象的情况下访问 addr
类型?
最佳答案
Unnamed struct/union fields within structs/unions在 C11 和 GCC 扩展中受支持。如果此功能开启,您可以直接使用e.addr
。请注意,标签名称也应为空。
struct Emp {
char name[20];
union {
char addr[50];
};
};
如果不支持,需要给union
一个名字,使用e.u.addr
。
struct Emp {
char name[20];
union address {
char addr[50];
} u;
};
关于c - 使用 union 的名称访问 union 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22189988/