switch语句使用时注意事项

本文介绍了解决C/C++中switch语句引发的编译错误“default”标签跳过变量初始化的方法,并提供了三种有效的解决方案。同时,文章还总结了switch语句的编程规范,帮助开发者避免类似的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  
如下代码编译时编译器给出如下错误:error C2361: default”标签跳过“temp1”的初始化操作
void main()
{
    int i;
    switch(i)
    {
    case 1:
        int temp1 = 1;
        break;
    default:
        break;
    }
}
如果采用下面的三种方法可以解决这个编译错误:
方法一:在只有一个case语句的情况下使用不会出现此类编译错误,代码如下:
void main()
{
    int i;
    switch(i)
    {
    case 1:
        int temp1 = 1;
        break;
    }
}
方法二:采用先声明后赋值的方法,代码如下:
void main()
{
    int i;
    switch(i)
    {
    case 1:
        int temp1;
        temp1 = 1;
        break;
    default:
        break;
    }
}
方法三:将case语句中代码利用”{}”括起来,代码如下:强烈推荐此方法
void main()
{
    int i;
    switch(i)
    {
    case 1:
        {
            int temp1 = 1;
            break;
        }
    default:
        {
            break;
        }
    }
}
    Switch语句编程规范总结:
    【规则1】每个case 语句的结尾不要忘了加break,否则将导致多个分支重叠(除非有意使多个分支重叠)。
       【规则2】不要忘记最后那个default 分支。即使程序真的不需要default 处理,也应该保留语句 default : break; 这样做并非多此一举,而是为了防止别人误以为你忘了default 处理。
       【规则3】 在使用switch语句时,不管case分支中有几条语句,都是用”{}”将其括起来。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值