Created
January 28, 2014 00:48
-
-
Save iziang/8660417 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
typedef enum { | |
ST_RADIO, | |
ST_CD | |
} STATES; | |
typedef enum { | |
EVT_MODE, | |
EVT_NEXT | |
} EVENTS; | |
int main() | |
{ | |
STATES state = ST_RADIO; | |
int stationNumber = 0; | |
int trackNumber = 0; | |
int event = 0; | |
while(1) { | |
printf("current state is %s\n", (state == ST_RADIO)?"ST_RADIO":"ST_CD"); | |
scanf("%d", &event); | |
switch (state) { | |
case ST_RADIO: | |
switch (event) { | |
case EVT_MODE: | |
state = ST_CD; | |
break; | |
case EVT_NEXT: | |
stationNumber++; | |
break; | |
default: | |
break; | |
} | |
break; | |
case ST_CD: | |
switch (event) { | |
case EVT_MODE: | |
state = ST_RADIO; | |
break; | |
case EVT_NEXT: | |
trackNumber++; | |
break; | |
default: | |
break; | |
} | |
break; | |
default: | |
break; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
关键是在输出当前状态时,(state == ST_RADIO)?"ST_RADIO":"ST_CD")的写法
其中的"ST_RADIO"和"ST_CD"是两个字符串常量,在编译时就已经确定了,在静态存储区中