计算机

一些奇怪的报错

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

读完了,有什么想法?

阅读已保存的问答示例,并循着引用回到原文。

查看公开问答示例
— 本文完 — 返回文章列表