error C2051: case expression not constant ?
今天编程。在键盘响应函数里需要用到下面的函数, void keyboard(unsigned char key, int x, int y) { switch (key) { case "s": case "S": angleX +=15.
·
今天编程。在键盘响应函数里需要用到下面的函数,
void keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case "s":
case "S":
angleX +=15.0;
glutPostRedisplay();
break;
case "d":
case "D":
angleY += 15.0;
glutPostRedisplay();
break;
case 27: //即键盘左上角的esc
exit(0);
break;
}
}
在VC里编译时,出现 error C2051: case expression not constant。
我想不至于呀, case "s":
case "S": 明明就是常量嘛,字符嘛。
在网上搜了半天,发现了case表达式还真有问题 ,
比如 's'才是常量(单引号) ,"s" 这样就是字符串了(双引号)。
所以解决方法是把所有的case 表达式里面的双引号换成单引号如下:
void keyboard(unsigned char key, int x, int y)
{ switch (key)
{ case 's':
case 'S':
angleX +=15.0;
glutPostRedisplay();
break;
case 'd':
case 'D':
angleY += 15.0;glutPostRedisplay();
break;
case 27: //即键盘左上角的esc
exit(0);
break;
}
编译成功!
本来以前解决过这个问题,用时又想不起来了,今天又遇到,所以专门记下来,以备后用!
更多推荐


所有评论(0)