【嵌入式C语言】五
6.7条件运算符的应用案例





6.8Switch开关语句
6.9switch 语句使用多个case使用1个break
Switch语句只能是整型、字符型、枚举型的变量表达式,浮点型会报错
6.10枚举类型及应用案例
- 枚举类型是int类型的数据类型,可以让数据更简洁、更易读
- 当数据只有有限个数的数值组成时,通常用枚举类型
- 语法格式: enum 枚举类型名称{枚举元素1,枚举元素2,...};
说明:
- 枚举元素的类型是int类型,如果没有明确赋值,数值从0开始,依次递增1;
- }后面需要有;
定义一个枚举类型的变量等于blue,仿真调试,可验证变量为3
如果对枚举类型的第一个元素赋值是1,那么就会从1开始递增
同时也支持枚举类型的数据不连续、
将上面显示月份的案例用枚举类型表示
值得注意的是,这里的JUN等并不是字符串,而是整型的名称
6.11一个软件版本承载多个产品型号
第一种方案是写两套代码对两个型号进行测试
,这种方法不提倡,当代码出现问题时,需要更改两套代码,费时费力
方案二只用一套代码工程,这种方案的维修成本小了很多
实现方法是对两个型号的代码进行编译宏开关
下面的红色字体代码是判断宏定义是否生效,如果生效则执行里面的代码,不生效就不执行,在编译阶段会被忽略掉
方案三只提交一种版本
在归档版本镜像时根据ab型号的的不同参数进行编写
这种方案需要有上位机软件选择A型号还是B型号,然后可以通过串口发送给单片机,单片机收到型号参数以后,需要将其固化到ROM中保存起来
设备在运行时如何区分自己是哪个型号然后执行不同的业务逻辑呢?
- 首先可以使用枚举类型定义a和b
- 然后程序初始化时候,从flash空间里面读取产品型号参数放到变量里
- 在传感器初始化函数里面判断是否为a型号,如果是,调用相关代码
- 同样在获取传感器数据函数里面,也是判断是否为a型号