假设我们有一个工会:
typedef union someunion {
int a;
double b;
} myunion;
在我设置后,是否可以检查联合中的类型a=123?
我的方法是将此联合添加到某个结构中,并在其为 int 时将 uniontype 设置为 1,在为 double 时将其设置为 2。
typedef struct somestruct {
int uniontype
myunion numbers;
} mystruct;
还有更好的解决办法吗?
还有更好的解决办法吗?
不,您展示的解决方案是最好的(也是唯一的)解决方案。union
它们非常简单 - 它们不会“跟踪”您分配给什么的内容。他们所做的只是让您为所有成员重复使用相同的内存范围。除此之外,它们不提供任何其他内容,因此将它们封装在一个struct
使用“类型”字段进行跟踪正是正确的做法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)