使用状态机(State Machine)来处理布尔值的改变并保持全局变量的值稳定。 示例代码:
// 定义全局变量
int globalVar = 0;
// 定义状态枚举类型
enum State {
ON,
OFF
};
// 初始状态为 OFF
State currentState = OFF;
// 处理布尔值的变化
void handleBoolChange(bool boolVal) {
if (boolVal) {
// 布尔值为真,改变状态为 ON
currentState = ON;
} else {
// 布尔值为假,改变状态为 OFF
currentState = OFF;
}
}
// 在不同状态下分别处理全局变量的改变
void handleGlobalVarChange() {
switch (currentState) {
case ON:
// 在 ON 状态下全局变量加一
globalVar += 1;
break;
case OFF:
// 在 OFF 状态下全局变量不变
break;
}
}
// 调用上述处理函数时,全局变量仍保持不变