在 C 中,有没有办法为以下联合类型声明隐式类型转换:
enum COMP {
LessThan,
Equal,
GreaterThan
};
将它映射到一个整数:
enum COMP {
LessThan : 1,
Equal : 0,
GreaterThan : -1
};
答案 0 :(得分:6)
您拥有的是 enum
,而不是 union
。而且看起来您要问的是是否可以为枚举常量分配特定值。你可以这样做:
enum COMP {
LessThan=-1,
Equal=0,
GreaterThan=1
};
此外,枚举被视为整数类型,因此您可以安全地与 int
进行转换。
答案 1 :(得分:2)
为了完成起见,如果值要在 1 个区间内,您只能定义第一个值:
enum COMP
{
LessThan = -1,
Equal, // will be 0
GreaterThan // will be 1
};