【发布时间】:2014-12-05 11:47:47
【问题描述】:
我正在优化一个项目。它包含一个选项结构,用户可以在其中一次选择一个选项。除了选项之外,我们还使用一个标志变量来检查为该记录设置了哪个选项值。 为了提高内存效率,我想将结构转换为联合。但是我怎么知道联合中设置了哪个变量值。因为 union 没有限制获取变量的值,即使没有设置。
struct options{
int basicPay;
int lumsumPay;
int mothlyPay;
int weeklyPay;
int dailyPay;
int anualPay;
int payType; // Flag variable to check which option is selected
};
union OptimizeOptions{
int basicPay;
int lumsumPay;
int mothlyPay;
int weeklyPay;
int dailyPay;
int anualPay;
int payType; // Confuse at here
};
【问题讨论】:
-
@user3121023 是对的——唯一需要联合的时候是一个或多个成员具有不同的类型。也拼写:
lumpsumPay、monthlyPay和annualPay。