当前位置: 首页 > ai >正文

[C++错误经验]case语句跳过变量初始化

标题:[C++错误经验]case语句跳过变量初始化
@水墨不写bug
在这里插入图片描述

文章目录

  • 一、错误信息复现
  • 二、错误分析
  • 三、解决方法


一、错误信息复现

write.cc:80:14: error: jump to case label80 |         case 2:|              ^
write.cc:76:20: note:   crosses initialization of ‘std::string qq’76 |             string qq;|                    ^~

二、错误分析

这个错误是C++编译错误,意思是:在switch语句中,从一个case标签跳转到另一个case标签时,不能跳过某个变量的初始化。

具体错误信息:

write.cc:80:14: error: jump to case label
case 2:
^
write.cc:76:20: note:   crosses initialization of ‘std::string qq’
string qq;
^~

在switch语句中,如果在一个case中定义了局部变量(比如string qq),然后程序执行流跳过了这个变量的定义(比如从case 1直接跳到case 2),那么就会导致这个变量没有被初始化,但后面的case却可能使用它,这是不允许的。

错误代码示例:

switch (x) {case 1:string qq;   // 这里定义了一个string变量qq// 一些代码break;case 2:// 这里如果直接跳过来,那么qq就没有被定义,但可能被使用break;
}

三、解决方法

  1. 使用大括号将case内的代码块括起来,形成局部作用域。这样,每个case中的变量都在各自的作用域内,不会影响到其他case。

  2. 变量的定义移到switch语句之外,这样所有case都可以使用,但要注意初始化问题。

  3. 如果变量只在某个case中使用,那么最好用大括号括起来。

修正后的代码:

switch (x) {case 1: {string qq;   // 现在这个变量只在case 1的块作用域内// 一些代码break;}case 2: {// 这里可以定义自己的变量,不会和case 1冲突break;}
}

完~

/**                        ::*                       :;J7, :,                        ::;7:*                       ,ivYi, ,                       ;LLLFS:*                       :iv7Yi                       :7ri;j5PL*                      ,:ivYLvr                    ,ivrrirrY2X,*                      :;r@Wwz.7r:                :ivu@kexianli.*                     :iL7::,:::iiirii:ii;::::,,irvF7rvvLujL7ur*                    ri::,:,::i:iiiiiii:i:irrv177JX7rYXqZEkvv17*                 ;i:, , ::::iirrririi:i:::iiir2XXvii;L8OGJr71i*               :,, ,,:   ,::ir@mingyi.irii:i:::j1jri7ZBOS7ivv,*                  ,::,    ::rv77iiiriii:iii:i::,rvLq@huhao.Li*              ,,      ,, ,:ir7ir::,:::i;ir:::i:i::rSGGYri712:*            :::  ,v7r:: ::rrv77:, ,, ,:i7rrii:::::, ir7ri7Lri*           ,     2OBBOi,iiir;r::        ,irriiii::,, ,iv7Luur:*         ,,     i78MBBi,:,:::,:,  :7FSL: ,iriii:::i::,,:rLqXv::*         :      iuMMP: :,:::,:ii;2GY7OBB0viiii:i:iii:i:::iJqL;::*        ,     ::::i   ,,,,, ::LuBBu BBBBBErii:i:i:i:i:i:i:r77ii*       ,       :       , ,,:::rruBZ1MBBqi, :,,,:::,::::::iiriri:*      ,               ,,,,::::i:  @arqiao.       ,:,, ,:::ii;i7:*     :,       rjujLYLi   ,,:::::,:::::::::,,   ,:i,:,,,,,::i:iii*     ::      BBBBBBBBB0,    ,,::: , ,:::::: ,      ,,,, ,,:::::::*     i,  ,  ,8BMMBBBBBBi     ,,:,,     ,,, , ,   , , , :,::ii::i::*     :      iZMOMOMBBM2::::::::::,,,,     ,,,,,,:,,,::::i:irr:i:::,*     i   ,,:;u0MBMOG1L:::i::::::  ,,,::,   ,,, ::::::i:i:iirii:i:i:*     :    ,iuUuuXUkFu7i:iii:i:::, :,:,: ::::::::i:i:::::iirr7iiri::*     :     :rk@Yizero.i:::::, ,:ii:::::::i:::::i::,::::iirrriiiri::,*      :      5BMBBBBBBSr:,::rv2kuii:::iii::,:i:,, , ,,:,:i@petermu.,*           , :r50EZ8MBBBBGOBBBZP7::::i::,:::::,: :,:,::i;rrririiii::*               :jujYY7LS0ujJL7r::,::i::,::::::::::::::iirirrrrrrr:ii:*            ,:  :@kevensun.:,:,,,::::i:i:::::,,::::::iir;ii;7v77;ii;i,*            ,,,     ,,:,::::::i:iiiii:i::::,, ::::iiiir@xingjief.r;7:i,*         , , ,,,:,,::::::::iiiiiiiiii:,:,:::::::::iiir;ri7vL77rrirri::*          :,, , ::::::::i:::i:::i:i::,,,,,:,::i:i:::iir;@Secbone.ii:::*/
http://www.xdnf.cn/news/12916.html

相关文章:

  • 基于uni-app for HarmonyOS5 的跨平台组件库开发指南,以及组件示例
  • 井云科技|智能体变现新路径:从开发到盈利的关键跨越
  • 热烈祝贺埃文科技正式加入可信数据空间发展联盟
  • AI 边缘计算网关推动各行业的数字化转型和智能化升级
  • HTML 标签
  • 【MySQL基础】MySQL表操作全面指南:从创建到管理的深度解析
  • OPENCV的cvtColor和putText的讲解
  • 年度峰会上,抖音依靠人工智能和搜索功能吸引广告主
  • 2025最全TS手写题之partial/Omit/Pick/Exclude/Readonly/Required
  • CSS | transition 和 transform的用处和区别
  • 计算机视觉一些定义解析
  • C# winform教程(二)----checkbox
  • 深度解析:etcd 在 Milvus 向量数据库中的关键作用
  • AWSLambda之设置时区
  • Visual Studio Code 扩展
  • Python自动化机器学习平台库之mindsdb使用详解
  • goreplay
  • 分类预测 | Matlab基于AOA-VMD-BiLSTM故障诊断分类预测
  • 路灯电费高还管理难?智慧照明系统让城市用电下降40%
  • python可视化:俄乌战争时间线关键节点与深层原因
  • Html实现图片上传/裁剪/马赛克/压缩/旋转/缩放
  • OpenHarmony标准系统-HDF框架之I2C驱动开发
  • 关于我对各开发语言的看法与接下来的文章内容
  • Java 系统上线全流程指南:从开发到部署、监控与高可用架构
  • 【OpenCV】相机标定之利用棋盘格信息标定
  • 嵌入式学习--江协stm32day7
  • 莫兰迪高级灰总结计划简约商务通用PPT模版
  • 【Gateway断言(predicates)设置】
  • LeetCode 0386.字典序排数:细心总结条件
  • STM32标准库-ADC数模转换器