Skip to content

Instantly share code, notes, and snippets.

@iziang
Created January 28, 2014 00:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iziang/8660417 to your computer and use it in GitHub Desktop.
Save iziang/8660417 to your computer and use it in GitHub Desktop.
#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;
}
}
}
@iziang
Copy link
Author

iziang commented Jan 28, 2014

关键是在输出当前状态时,(state == ST_RADIO)?"ST_RADIO":"ST_CD")的写法

其中的"ST_RADIO"和"ST_CD"是两个字符串常量,在编译时就已经确定了,在静态存储区中

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment