C++中switch的问题(编译原理相关)

本文探讨了在编程中return与break的使用区别,特别是在switch-case结构内的default分支中使用return是否会导致程序异常退出的问题,并给出了明确的答案。

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

问题:

各位大侠,我公司的软件在运行的时候,偶尔会出现自动关闭软件的问题,起初以为是电脑病毒的影响,后来很多客户都反映这个问题。
我在阅读代码的时候发现了个问题,问题程序段如下:
                        function(...)
                          {
                                ...
                                if(...)
                              {
                                switch(...)
                                  {
                                      case ..:
                                          break;
                                        ...
                                      default:
                                          return;
                                  }
                                }
                                else
                                {
                                  // 实现了一段操作; 
                              }
                            }
在default里面的操作是:return,我想请问,在这里用renturn而不用break会导致程序非正常退出吗????

 

解答:

不会

从编译器原理上, default 后面的return,实际是一个跳转语句,直接跳转到本函数的最后一个语句
如果有return语句,则是return, 否则是该函数的最后一个大括号'{'

自己可以设置断点跟踪,编译一个小函数就可以测试到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值