enum
{
EVENT_START,
EVENT_SUCCESS,
EVENT_FAILED,
EVENT_IDLE
};
#define STR_EVENT(M) \
((M)==EVENT_START?"EVENT_START":\
((M)==EVENT_SUCCESS?"EVENT_SUCCESS":\
((M)==EVENT_FAILED?"EVENT_FAILED":\
"UNDEFINED")))
void main()
{
printf("----%s\r\n",STR_EVENT(EVENT_START));
printf("----%s\r\n",STR_EVENT(EVENT_SUCCESS));
printf("----%s\r\n",STR_EVENT(EVENT_FAILED));
printf("----%s\r\n",STR_EVENT(EVENT_STARTAAA));
}
宏可以解决此类需要嵌套条件表达式的情况