首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于在if比较条件的有关问题

2012-03-23 
关于在if比较条件的问题这是我定义的[codeC/C++][/code]#define LEFT 0#define RIGHT 1#define UP 2#d

关于在if比较条件的问题
这是我定义的[code=C/C++][/code]#define LEFT 0;
#define RIGHT 1;
#define UP 2;
#define DOWN 3;
然后这是我写的比较语句[code=C/C++][/code]switch(pMsg->wParam) 
{
case 37:
case 65:
if (SnakeHead.iDirect == UP || SnakeHead.iDirect == DOWN)
{
SnakeHead.iDirect = LEFT;
}
break;//向左
case 39:
case 68:
if (SnakeHead.iDirect == UP || SnakeHead.iDirect == DOWN)
{
SnakeHead.iDirect = RIGHT;
}
break;//向右
case 38:
case 87:
if (SnakeHead.iDirect == LEFT || SnakeHead.iDirect == RIGHT)
{
SnakeHead.iDirect = UP;
}
break;//向上
case 40:
case 83:
if (SnakeHead.iDirect == LEFT || SnakeHead.iDirect == RIGHT)
{
SnakeHead.iDirect = DOWN;
}
break;//向下
default:
break;
}
编译通不过,理由是error C2143: syntax error : missing ')' before ';'
error C2143: syntax error : missing ';' before '||'
error C2059: syntax error : ')'

然后我直接把LEFT RIGHT等改成数字,结果就通过编译了[code=C/C++][/code]switch(pMsg->wParam) 
{
case 37:
case 65:
if (SnakeHead.iDirect == 2 || SnakeHead.iDirect == 3)
{
SnakeHead.iDirect = LEFT;
}
break;//向左
case 39:
case 68:
if (SnakeHead.iDirect == 2 || SnakeHead.iDirect == 3)
{
SnakeHead.iDirect = RIGHT;
}
break;//向右
case 38:
case 87:
if (SnakeHead.iDirect == 0 || SnakeHead.iDirect == 1)
{
SnakeHead.iDirect = UP;
}
break;//向上
case 40:
case 83:
if (SnakeHead.iDirect == 0 || SnakeHead.iDirect == 1)
{
SnakeHead.iDirect = DOWN;
}
break;//向下
default:
break;
}
难道是条件里面不能出现定义的LEFT RIGHT等?

菜鸟求大神们指导啊

[解决办法]
define 后不用冒号

热点排行