欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

error: a label can only be part of a statement and a declaration is not a statement错误解决

程序员文章站 2022-06-13 21:57:42
...

今天在编译程序的时候编译器报了这个错误,发现错误指向的行是一个变量名的定义。在网上查询了一下,找到了原因。

在switch语句下case的标签内,定义变量的问题。错误范例如下:

switch(signal)
{
    case 1:
        double a=90; //这行错误
        ......
        ......
        break;
    default:
        ......
}

解决方法如下两种:

(1)


double a;//声明放到标签前面
switch(signal)
{
    case 1:
        a=90; 
        ......
        ......
        break;
    default:
        ......
}

(2)

switch(signal)
{
    case 1:
    {//用括号括起来.
        double a=90; 
        ......
        ......
        break;
    }
    default:
        ......
}

只是找到了解决的方法,但是具体的编译器原理不明,如果有知道的大神请留言告知,谢谢.

相关标签: 编译报错处理