更新时间:2023-02-11 09:16:01
使用转到
实施状态机往往是有道理的。如果你真的关心使用goto语句,一个合理的选择往往是有一个状态
变量,您修改和开关
基于语句:
Using a goto
for implementing a state machine often makes good sense. If you're really concerned about using a goto, a reasonable alternative is often to have a state
variable that you modify, and a switch
statement based on that:
typedef enum {s0,s1,s2,s3,s4,...,sn,sexit} state;
state nextstate;
int done = 0;
nextstate = s0; /* set up to start with the first state */
while(!done)
switch(nextstate)
{
case s0:
nextstate = do_state_0();
break;
case s1:
nextstate = do_state_1();
break;
case s2:
nextstate = do_state_2();
break;
case s3:
.
.
.
.
case sn:
nextstate = do_state_n();
break;
case sexit:
done = TRUE;
break;
default:
/* some sort of unknown state */
break;
}