error:jump to case label [-fpermissive]
2015-06-25 18:20
302 查看
菜丝inside
[转载]error:jump to case label
代码:
int main()
{
int a =0;
switch(a)
{
case 0: int b = 0;break;
case 1: break;
default:break;
}
return 0;
}
编译器提示错误:
testswitch.cpp: In function ‘int main()’:
testswitch.cpp:9: error: jump to case label
testswitch.cpp:8: error: crosses initialization of ‘int b’
testswitch.cpp:10: error: jump to case label
testswitch.cpp:8: error: crosses initialization of ‘int b’
出现这样的提示,你很有可能在某个case标记中定义了局部变量,而后面还有其他的case标记或者default语句。。比如说这里的整形变量b。
看看编译器提示的信息 cross initialization of int b, 什么意思呢, 就是说跳过了变量的初始化,仔细想想,确实是这样,我们在case 0 中定义了变量b,在这个程序中,直到遇到switch的“}”右花括号,b的作用域才终结,也就是说 在case 1 和 default 分支中 变量b依然是可以访问的。考虑这样一种情况,如果switch匹配了case 1,这样case 0的代码被跳过了,那么b就没有定义,如果此时在case 1的代码中访问了b,程序会崩溃的。如果谁也不匹配,执行default也会有同样的危险。
知道了错误的原因,解决起来就很简单了
1,将case 0 标记 的代码用 {}括起来,这样b的作用域在这个花括号内。在其他的case 标记中不能访问。
2. 将 变量b放在 switch外面 定义。
文章出处:http://hi.baidu.com/hins_pan/item/61ff3d8b2e072e52e63d1950
[转载]error:jump to case label
代码:
int main()
{
int a =0;
switch(a)
{
case 0: int b = 0;break;
case 1: break;
default:break;
}
return 0;
}
编译器提示错误:
testswitch.cpp: In function ‘int main()’:
testswitch.cpp:9: error: jump to case label
testswitch.cpp:8: error: crosses initialization of ‘int b’
testswitch.cpp:10: error: jump to case label
testswitch.cpp:8: error: crosses initialization of ‘int b’
出现这样的提示,你很有可能在某个case标记中定义了局部变量,而后面还有其他的case标记或者default语句。。比如说这里的整形变量b。
看看编译器提示的信息 cross initialization of int b, 什么意思呢, 就是说跳过了变量的初始化,仔细想想,确实是这样,我们在case 0 中定义了变量b,在这个程序中,直到遇到switch的“}”右花括号,b的作用域才终结,也就是说 在case 1 和 default 分支中 变量b依然是可以访问的。考虑这样一种情况,如果switch匹配了case 1,这样case 0的代码被跳过了,那么b就没有定义,如果此时在case 1的代码中访问了b,程序会崩溃的。如果谁也不匹配,执行default也会有同样的危险。
知道了错误的原因,解决起来就很简单了
1,将case 0 标记 的代码用 {}括起来,这样b的作用域在这个花括号内。在其他的case 标记中不能访问。
2. 将 变量b放在 switch外面 定义。
文章出处:http://hi.baidu.com/hins_pan/item/61ff3d8b2e072e52e63d1950
相关文章推荐
- Java使用iText生成word文 表格、图片、表格里插图片、页眉、页脚、图片页脚、这一次更全面
- MySQL详解(4)----------基本操作
- [LeetCode] Max Points on a Line
- xstream 别名的用法
- Heron(一)—-storm的一些短板
- Android-获取Bitmap对象的API效果差异对比
- answer my questions from the book<构建之法>.
- 汇编语言:第二章 寄存器
- ZendStudio格式化HTML代码方法及格式化后错位问题修正
- mysql
- Oracle中的锁
- 中国解决钓鱼岛问题的绝招:支持琉球独立
- OpenGL ES中的顶点数组、顶点属性、缓冲区对象
- 网络爬虫1-创建第一个简单的脚本
- Android Volley框架的几种post提交请求方式
- Rails学习总结(2)
- Oracle中创建数据库链接
- Java面向对象多态性
- java 中 int 与 byte 位运算
- ListView显示问题