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

【嵌入式C语言】五

6.7条件运算符的应用案例

6.8Switch开关语句

6.9switch 语句使用多个case使用1个break

Switch语句只能是整型、字符型、枚举型的变量表达式,浮点型会报错

6.10枚举类型及应用案例

  • 枚举类型是int类型的数据类型,可以让数据更简洁、更易读
  • 当数据只有有限个数的数值组成时,通常用枚举类型
  • 语法格式: enum 枚举类型名称{枚举元素1,枚举元素2,...};

说明:

  1. 枚举元素的类型是int类型,如果没有明确赋值,数值从0开始,依次递增1;
  2. }后面需要有;

定义一个枚举类型的变量等于blue,仿真调试,可验证变量为3

如果对枚举类型的第一个元素赋值是1,那么就会从1开始递增

同时也支持枚举类型的数据不连续、

将上面显示月份的案例用枚举类型表示

值得注意的是,这里的JUN等并不是字符串,而是整型的名称

6.11一个软件版本承载多个产品型号

第一种方案是写两套代码对两个型号进行测试

,这种方法不提倡,当代码出现问题时,需要更改两套代码,费时费力

方案二只用一套代码工程,这种方案的维修成本小了很多

实现方法是对两个型号的代码进行编译宏开关

下面的红色字体代码是判断宏定义是否生效,如果生效则执行里面的代码,不生效就不执行,在编译阶段会被忽略掉

方案三只提交一种版本

在归档版本镜像时根据ab型号的的不同参数进行编写

这种方案需要有上位机软件选择A型号还是B型号,然后可以通过串口发送给单片机,单片机收到型号参数以后,需要将其固化到ROM中保存起来

设备在运行时如何区分自己是哪个型号然后执行不同的业务逻辑呢?

  1. 首先可以使用枚举类型定义a和b
  2. 然后程序初始化时候,从flash空间里面读取产品型号参数放到变量里
  3. 在传感器初始化函数里面判断是否为a型号,如果是,调用相关代码
  4. 同样在获取传感器数据函数里面,也是判断是否为a型号

7.1for 循环语句

7.2for语句的嵌套循环

7.3while循环语句

7.4do-while循环语句

7.5break跳转语句

http://www.lryc.cn/news/622400.html

相关文章:

  • 模型输出参数和量化参数一文详解!!
  • Eclipse:关闭项目
  • 腾讯位置商业授权微信小程序逆地址解析(坐标位置描述)
  • 【LeetCode 热题 100】121. 买卖股票的最佳时机
  • OpenZeppelin Contracts 架构分层分析
  • 再回C的进制转换--负数
  • python的美食交流社区系统
  • 【Spring Cloud 微服务】1.Hystrix断路器
  • 两幅美国国旗版权挂钩专利发起跨境诉讼
  • 列式存储与行式存储:核心区别、优缺点及代表数据库
  • Spring Boot 静态函数无法自动注入 Bean?深入解析与解决方案
  • 上下文块嵌入(contextualized-chunk-embeddings)
  • Mybatis简单练习注解sql和配置文件sql+注解形式加载+配置文件加载
  • 图像识别控制技术(Sikuli)深度解析:原理、应用与商业化前景
  • System V通信机制
  • Web攻防-大模型应用LLM安全提示词注入不安全输出代码注入直接间接数据投毒
  • Go语言 time 包详解:从基础到实战
  • Vue模板引用(Template Refs)全解析1
  • 介绍大根堆小根堆
  • 命令模式C++
  • 【DSP28335 事件驱动】唤醒沉睡的 CPU:外部中断 (XINT) 实战
  • AI - MCP 协议(一)
  • 备忘录模式C++
  • 线性代数 · 直观理解矩阵 | 空间变换 / 特征值 / 特征向量
  • JavaScript递归
  • nVidia Tesla P40使用anaconda本地重编译pytorch3d成功加载ComfyUI-3D-Pack
  • 磁悬浮轴承“幽灵振动”克星:深度解析同频振动机理与精准打击策略
  • 日常反思总结
  • Layui 语法详解与全功能示例
  • GoLand深度解析:智能开发利器与cpolar内网穿透的协同革命