C++编程函数中switch实例用法

news2024/9/25 17:16:18

switch语法

switch语法

switch (func_cb.sta)
switch后续跟随多个成对的case和break,分别包含if/endif判断语句
每个 case 后跟一个要比较的值和一个冒号,当被测试的变量等于 case 中的常量时,case下一行的语句将被执行
switch 语句可以嵌套。 嵌套时,case 或 default 标签将与封装它们的最近的 switch 语句关联。
default case 用于上面所有 case 都不为真时执行一个任务,default case 中的 break 语句不是必需的。
default 标签只能出现一次。 default 语句通常放在末尾,但它可以出现在 switch 语句正文中的任何位置。
case 或 default 标签只能显示在 switch 语句内部。

break

没有break,程序将一直向下执行
遇到break语句,执行switch语句的下一行

case的数量

C++ 未限制 switch 语句中 case 值的数量。
该数量仅受可用内存的限制

源程序实例:

func_run函数中依次调用了多个功能函数,构成一个主循环,。

void func_run(void)
{
    printf("%s\n", __func2__);
    while (1) {
        func_enter();  //
        switch (func_cb.sta) {
#if FUNC_MUSIC_EN
        case FUNC_MUSIC:
            func_music();
            break;
#endif // FUNC_MUSIC_EN

#if FUNC_FMRX_EN
        case FUNC_FMRX:
            func_fmrx();
            break;
#endif // FUNC_FMRX_EN

#if FUNC_CLOCK_EN
        case FUNC_CLOCK:
            func_clock();
            break;
#endif // FUNC_CLOCK_EN

#if FUNC_BT_EN
        case FUNC_BT:
            func_bt();
            break;
#endif

#if FUNC_BTHID_EN
        case FUNC_BTHID:
            func_bthid();
            break;
#endif // FUNC_BTHID_EN

#if FUNC_AUX_EN
        case FUNC_AUX:
            func_aux();
            break;
#endif // FUNC_AUX_EN

#if FUNC_USBDEV_EN
        case FUNC_USBDEV:
            func_usbdev();
            break;
#endif

#if FUNC_SPDIF_EN
        case FUNC_SPDIF:
            func_spdif();
            break;
#endif // FUNC_SPDIF_EN

#if FUNC_FMAM_FREQ_EN
        case FUNC_FMAM_FREQ:
            func_fmam_freq();
            break;
#endif // FUNC_FMAM_FREQ_EN

#if FUNC_SPEAKER_EN
        case FUNC_SPEAKER:
            func_speaker();
            break;
#endif // FUNC_SPEAKER_EN

#if FUNC_I2S_EN
        case FUNC_I2S:
            func_i2s();
            break;
#endif // FUNC_I2S_EN

#if FUNC_IDLE_EN
        case FUNC_IDLE:
            func_idle();
            break;
#endif // FUNC_IDLE_EN

        case FUNC_PWROFF:
            func_pwroff(sys_cb.pwrdwn_tone_en);
            break;

        case FUNC_SLEEPMODE:
            func_sleepmode();
            break;

#if IODM_TEST_MODE
        case FUNC_BT_CBT:
            func_bt_cbt();
            break;

        case FUNC_BT_FCC:
            func_bt_fcc();
            break;
#endif // IODM_TEST_MODE

#if EX_SPIFLASH_SUPPORT
        case FUNC_EXSPIFLASH_MUSIC:
            func_exspifalsh_music();
            break;
#endif

#if FUNC_HDMI_EN
        case FUNC_HDMI:
            func_hdmi();
			break;
#endif

        default:
            func_exit();
            break;
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1705879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

香橙派Kunpeng Pro深度测评:开发者的新选择

文章目录 前言:一、开发板外观与介绍1.接口介绍2.按键以及LED的介绍 二、开发板上电以及系统启动三、更新安装相关命令四、查看相关配置五、vim个性化配置六、开发板网络测试1.网口测试:2.WiFi模块测试: 七、扩展引脚功能测试1.TFTP传输文件2…

【JavaScript】P1 JavaScript 是什么、其组成

1.1 JavaScript 是什么 JavaScript 是一种运行在浏览器的编程语言,用于实现人机交互效果。其作用包含: 监听用户行为并指导网页做出反馈。针对表单数据进行合法性验证。获取后台数据,渲染到前端界面。服务器编程,最后端的事情&a…

大模型微调:Lora

原理图 原理:不改变原始大模型参数,只加入一个类似残差分支,先降纬再升纬,因为模型是过参数化的,它们有更小的内在维度,模型主要依赖于这个低的内在维度(low intrinsic dimension)去…

基于眼底增强的疾病感知蒸馏模型用于OCT图像的视网膜疾病分类

文章目录 Fundus-Enhanced Disease-Aware Distillation Model for Retinal Disease Classification from OCT Images摘要方法实验结果 Fundus-Enhanced Disease-Aware Distillation Model for Retinal Disease Classification from OCT Images 摘要 光学相干断层扫描&#xf…

【C++】模板的下一步,STL标准模板库的介绍

欢迎来到CILMY23的博客 🏆本篇主题为:模板的新玩法,STL标准模板库的介绍 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux 🏆…

【qt】一次性学会所有对话框

对话框 一.前言二.文件对话框1.选择一个文件2.选择多个文件3.选择目录4.保存文件 三.颜色对话框1.获取颜色 四.字体对话框1.获取字体 五.输入对话框1.输入文本2.输入整数3.输入小数4.输入条目 六.消息对话框1.问题框2.信息框3.警告框4.危机框5.关于框6.关于qt框七.总结 一.前言…

芯片设计 | FPGA设计的各种仿真概念分析

前仿真,即功能仿真。 可使用专用于仿真的工具对设计进行功能仿真,以验证电路功能是否符合设计要求。 通过功能仿真能够及时发现设计中的错误,从而加快设计进度,提高设计的可靠性。 综合后的仿真 把综合生成的标准延时反标注到综合仿真模型去,可估计门延时带来的影响,…

Java核心: 使用asm操作字节码

在上一篇<Java核心: 注解处理器>中我们提到&#xff0c;通过实现AbstractProcessor&#xff0c;并调用javac -processor能够生成代码来实现特殊逻辑。不过它存在两个明显的问题: 只能新增源文件来扩展逻辑&#xff0c;无法修改现有的类或方法 必须有一个单独的编译过程&a…

【Sql Server】随机查询一条表记录,并重重温回顾下自定义函数的封装和使用

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言随机查询语…

首发AI新功能 贝锐向日葵远程控制IT精英版助力IT运维

从1947年晶体管发明开始&#xff0c;以计算机为核心载体的IT技术狂奔发展至今&#xff0c;这期间IT运维方式也在不断的发展变化。 我们经历了50s-70s的肉身更换电子管&#xff1b; 经历了80s-90s的本地软件运维&#xff1b; 经历了90s-00s互联网的澎湃发展&#xff0c;Telne…

VMware vSphere Distributed Services Engine 和利用 DPU 实现网络加速

VMware相关学习专栏&#xff1a;虚拟化技术 vSphere 8.0 通过加速数据处理单元 (DPU) 上的网络功能实现了突破性的工作负载性能。 vSphere 8.0 通过加速 DPU 上的网络功能实现了突破性工作负载性能&#xff0c;从而满足现代分布式工作负载的吞吐量和延迟需求。借助 vSphere Dis…

【C++题解】1133. 字符串的反码

问题&#xff1a;1133. 字符串的反码 类型&#xff1a;字符串 题目描述&#xff1a; 一个二进制数&#xff0c;将其每一位取反&#xff0c;称之为这个数的反码。下面我们定义一个字符的反码。 如果这是一个小写字符&#xff0c;则它和字符 a 的距离与它的反码和字符 z 的距离…

godot4.2 + GDextension c++在 vs code 中断点调试配置

游戏开发中如果做不到自己编写的代码做断点调试&#xff0c;无不是瞎子摸象&#xff0c;特别是C这么底层的语言。这2天开始在VS studio中折腾&#xff0c;一直折腾不出结果&#xff0c;几次想要放弃GODOT。最终今天在VS code中搞定了这断点调试C代码。 在上一篇文章我已经做好了…

windows部署ollama+maxkb+vscode插件continue打造本地AI

windows部署ollamamaxkbvscode插件continue打造本地AI 前言下载ollamadocker desktopvscode插件continue 安装安装ollama设置环境变量 安装docker desktop部署maxkb容器 安装vscode插件模型搜索和推荐 前言 我采用docker运行maxkb&#xff0c;本地运行ollama形式。可能是windo…

深度神经网络——贝叶斯与朴素贝叶斯定理

概述 贝叶斯定理是概率论中一个非常重要的概念&#xff0c;它提供了一种在已知某些相关事件的概率时&#xff0c;计算另一个事件发生概率的方法。在你提供的内容中&#xff0c;贝叶斯定理被描述为一种“魔法”&#xff0c;因为它能够使计算机通过分析大量的数据来预测人们可能…

今日好料推荐(Altium Designer + 仿真器驱动)

今日好料推荐&#xff08;Altium Designer 仿真器驱动&#xff09; 参考资料在文末获取&#xff0c;关注我&#xff0c;获取优质资源。 Altium Designer Altium Designer 是一种高度集成的电子设计自动化 (EDA) 软件工具&#xff0c;广泛应用于电子电路和印刷电路板 (PCB) …

汇编原理(三)编程

源程序&#xff1a; 汇编指令&#xff1a;有对应的机器码与其对应 伪指令&#xff1a;无对应的机器码&#xff0c;是由编译器来执行的指令&#xff0c;编译器根据伪指令来进行相关的编译工作。 ex1:XXX segment、XXX ends这两个是一对成对使用的伪指令&#xff0c;且必须会被用…

充电器快充协议与PW6606快充电压诱骗芯片

随着科技的快速发展&#xff0c;手机、平板等电子产品对于充电速度的要求越来越高&#xff0c;快充技术应运而生。在市场上&#xff0c;我们常见的快充充电器主要分为两种类型&#xff1a;A口充电器&#xff08;USB口&#xff09;和TYPE C口充电器。每种类型都拥有其独特的快充…

埃文科技携数据要素产品亮相第七届数字中国建设峰会

第七届数字中国建设峰会&#xff08;以下简称“峰会”&#xff09;于2024年5月24日至25日在福建省福州市举办。此次峰会是国家数据工作体系优化调整后举办的首次数字中国建设峰会。本届峰会由国家发展改革委、国家数据局、国家网信办、科技部、国务院国资委、福建省人民政府共同…

10分钟就可以用AI制作绘本小故事?自媒体涨粉变现利器,实战练习,轻松上手!

大家好&#xff0c;我是向阳 关于最近有老铁私信我如何使用AI制作儿童画册进行AI变现&#xff0c;由于需求的朋友不少&#xff0c;那么本次我将从头到尾将整个创作过程简单和各位介绍下&#xff0c;也欢迎各位老铁一些学习交流。 本次制作过程中所有工具均不需要付费也无需魔…