新手有关问题:不能在C的case中使用一个范围-是什么意思?
新手问题:不能在C的case中使用一个范围------是什么意思??
RT
C Primer Plus 第四版(中文版)187页末尾
------解决方案--------------------
case中不能定义变量
------解决方案--------------------
比如 if ( x >= 0 && x <= 2), 但 case 不能这样。 case 之后只能跟整型的变量
------解决方案--------------------
case 后面只能跟常量,既然只能跟常量,又如何使用含有变量的范围呢。
------解决方案--------------------
我记得这个书上说的很清楚啊,case后面只能跟常量不能出现运算符!
------解决方案--------------------
case语句中有可能被跳过的部分,这会造成下文出现未定义的变量而不容易检查,所以编译器索性不允许直接在case语句中定义变量。但是在这种情况下是允许的:
case
{
int a;
//..............
}
加了括号以后,a的作用域只是括号里面了,不会影响到下文中可能出现的未定义的情况。
------解决方案--------------------
C语言,不允许在for()括号里定义变量,不允许在case里定义变量。
------解决方案--------------------
case后边只能是整型常数数据
------解决方案--------------------
------解决方案--------------------
要是说case后面跟的常量也就算了……不过这个应该不用特别提吧。
要是说scope……什么渣翻译。不是通译作用域么。
case xx:
int x; /*错误。*/
case xx:
{
int x; /*这样还差不多。*/
}
RT
C Primer Plus 第四版(中文版)187页末尾
------解决方案--------------------
case中不能定义变量
------解决方案--------------------
比如 if ( x >= 0 && x <= 2), 但 case 不能这样。 case 之后只能跟整型的变量
------解决方案--------------------
case 后面只能跟常量,既然只能跟常量,又如何使用含有变量的范围呢。
------解决方案--------------------
我记得这个书上说的很清楚啊,case后面只能跟常量不能出现运算符!
------解决方案--------------------
case语句中有可能被跳过的部分,这会造成下文出现未定义的变量而不容易检查,所以编译器索性不允许直接在case语句中定义变量。但是在这种情况下是允许的:
case
{
int a;
//..............
}
加了括号以后,a的作用域只是括号里面了,不会影响到下文中可能出现的未定义的情况。
------解决方案--------------------
C语言,不允许在for()括号里定义变量,不允许在case里定义变量。
------解决方案--------------------
case后边只能是整型常数数据
------解决方案--------------------
------解决方案--------------------
要是说case后面跟的常量也就算了……不过这个应该不用特别提吧。
要是说scope……什么渣翻译。不是通译作用域么。
case xx:
int x; /*错误。*/
case xx:
{
int x; /*这样还差不多。*/
}