解决warning: #188-D: enumerated type mixed with another type问题
出现问题处如下, 指示在代码的某处将枚举类型与另一种类型混合使用,这种警告通常在将枚举类型与其他类型进行操作或赋值时出现
enum Mode
{
MODE_IDLE,
MODE_1,
MODE_2,
MODE_3,
MODE_4,
};
enum Mode currentMode = MODE_IDLE;
currentMode = (currentMode + 1) % 5;
解决:
将枚举类型转换为整数类型进行操作,如下所示,将 (currentMode + 1) % 5
的结果转换回枚举类型 enum Mode
,这样就避免了警告。
enum Mode {
MODE_IDLE,
MODE_1,
MODE_2,
MODE_3,
MODE_4,
};
enum Mode currentMode = MODE_IDLE;
currentMode = (enum Mode)((currentMode + 1) % 5);
注意,强制转换回枚举类型时,请确保结果在枚举类型的取值范围内。(currentMode + 1) % 5
的结果在0到4之间,恰好对应枚举类型中的取值范围,因此进行转换是安全的。