//定义一个结构体,表示硬件的状态
struct hardware {
int power; //电源状态,0表示关,1表示开
int reset; //复位状态,0表示正常,1表示复位
};
//定义一个函数,用软件来控制硬件的开关
void switch_hardware(struct hardware *h) {
//如果电源是关的,就打开电源,并把复位状态设为0
if (h->power == 0) {
h->power = 1;
h->reset = 0;
printf("Hardware is turned on.\n");
}
//如果电源是开的,并且复位状态是0,就关闭电源,并把复位状态设为1
else if (h->power == 1 && h->reset == 0) {
h->power = 0;
h->reset = 1;
printf("Hardware is turned off and reset.\n");
}
//如果电源是开的,并且复位状态是1,就不做任何操作
else {
printf("Hardware is already on and reset.\n");
}
}
//定义一个主函数,测试上面的函数
int main() {
//创建一个硬件对象,并初始化为关机状态
struct hardware h;
h.power = 0;
h.reset = 0;
//调用函数,打开硬件
switch_hardware(&h);
//调用函数,关闭并复位硬件
switch_hardware(&h);
//调用函数,尝试再次打开硬件
switch_hardware(&h);
return 0;
}