宏在打印枚举时:因为宏将参数转换为字符串常量[MSDN]。因些无需创建查找表(其中包含枚举数到字符的映射,通常难以维护),以检索宝贵的调试信息,
#define CaseEnum(a) case(a): PrintEnum(#a)//其中#是一个字符串化的操作符,
使用:
switch(msg_in)
{
CaseEnum(Msg_out):
ReactToHit();
break;
CaseEnum(MSG_GameReset);
resetGameLogic();
break;
}
note: 使用宏 首先要了角问题,其次知道他的实现方式