一些奇怪的报错
switch 内定义变量
在 switch 语句内定义新变量会导致如下报错:
error: jump to case label
单看该报错提示实际上没有给出任何报错信息,需要特别注意。
例如:
switch (op)
{
case 1:
size_t a = 1, b = 2;
cout << a + b << endl;
break;
case 2:
size_t c = 3, d = 5;
cout << c + d << endl;
break;
default:
break;
}
修改方法:使用花括号指定一个“块”,限定新变量的作用域:
switch (op)
{
case 1:
{
size_t a = 1, b = 2;
cout << a + b << endl;
}
break;
case 2:
{
size_t c = 3, d = 5;
cout << c + d << endl;
}
break;
default:
break;
}
BEYOND THE ARTICLE
读完了,有什么想法?
阅读已保存的问答示例,并循着引用回到原文。
— 本文完 — 返回文章列表