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

61、【OS】【Nuttx】编码规范解读(九)

背景

接之前 blog
53、【OS】【Nuttx】编码规范解读(一)
54、【OS】【Nuttx】编码规范解读(二)
55、【OS】【Nuttx】编码规范解读(三)
56、【OS】【Nuttx】编码规范解读(四)
57、【OS】【Nuttx】编码规范解读(五)
58、【OS】【Nuttx】编码规范解读(六)
59、【OS】【Nuttx】编码规范解读(七)
60、【OS】【Nuttx】编码规范解读(八)
分析了行宽格式,注释要求,花(圆)括号风格,全局变量,结构体,宏定义,指针,结构体等,下面继续分析

Nuttx 编码规范

类型转换

在这里插入图片描述
类型转换操作符与被转换的值之间不要有空格
类型转换操作符用一对圆括号 () 包裹目标类型名,表示将某个值转换为目标类型,比如 (int) 表示把某个值转换为 int 类型

操作符

二元操作符

在这里插入图片描述

所有二元操作符(位于两个值之间的操作符,如+, -, =, !=, ==, >, <等)应在操作符的前后各留一个空格,以提高代码的可读性
示例如下
在这里插入图片描述

一元操作符

所有一元操作符(仅对一个操作数进行操作的操作符,如++, --, !, &, *, ~等)要紧挨着操作数,中间不要有任何空格,保持代码紧凑性和清晰性,避免混淆
在这里插入图片描述

复合操作符

在这里插入图片描述

  • 复合操作符与等号 = 组合使用时,等号 = 应始终放在最后
  • 很多操作符由一个字符和等号 = 组合而成的,比如 +=, >=, >>= 等等,有些编译器允许等号出现在左边或右边,为了消除歧义,要求等号必须始终放在右边,比如 a =++ b 这种是不被允许的

if then else

在这里插入图片描述

  • if 关键字和后面的条件部分必须在同一行,并且中间有一个空格
  • if 和 else 关键字在同一列对齐
  • if 和 else 后面的语句必须始终用大括号包裹,即使只有一条语句或没有语句
  • if-else 语句的最后一个右大括号后面跟一个空白行,除非该 if-else 语句嵌套在另一个复合语句内

举例如下
在这里插入图片描述

三元运算符

对于 if else then 的另一种表达:三元运算符 (condition)? then : else
在这里插入图片描述

  • 三元运算符只适用于整个语句简短且能放在一行中的情况
  • 如果三元运算符太长,要扩展到多行,则不要用这种表达,直接用 if else
  • 条件部分和整个三元运算符语句推荐被括号包裹,以提高可读性和避免优先级问题

示例如下
在这里插入图片描述

switch 语句

在这里插入图片描述

  • switch 和值在同一行,并用一个空格隔开
  • 允许 case 不写 break,从一个 case 执行完再执行下一个 case,但必须加注释说明(实践中不推荐这样,case 最好还是加上 breask,利于代码维护)
  • 即使所有情况都被覆盖,也要加上 default 分支,用于捕捉非法输入或异常值
  • 把 case 中的代码块用 {} 包裹起来,确保作用域清晰和可读性
  • break 相对 case 关键字要缩进两个空格
  • 每个 case 语句块后要有一个空行,除非是最后一个并紧接右大括号 }
  • switch 结束的大括号后要有一行空行,除非这个 switch 嵌套在一个复合语句中(比如函数体、if 语句等)

示例如下
在这里插入图片描述

while 语句

在这里插入图片描述

  • while 关键字与条件在同一行并用一个空格隔开
  • while 关键字与条件单独一行
  • 循环体用大括号包裹
  • 空语句不需要大括号,比如 while (condition);
  • while 循环的右大括号后要跟一个空白行,除非嵌套在另一个复合语句内

举例如下
在这里插入图片描述

相关文章:

  • SpringBoot 自动装配原理深度解析:从源码到实践
  • Bootstrap法进行随机模拟
  • 班翎流程平台 | 流程变量赋值事件,简化流程配置,灵活构建流程
  • micromamba安装 配置 pythonocc安装
  • LMEval ,谷歌开源的统一评估多模态AI模型框架
  • 树莓派设置静态ip 永久有效 我的需要设置三个 一个摄像头的 两个设备的
  • FastAPI 依赖注入
  • web-css
  • 2.2 C++之循环结构
  • arcgis js 4.x 的geometryEngine计算距离、面积、缓冲区等报错、失败
  • 整合Jdk17+Spring Boot3.2+Elasticsearch9.0+mybatis3.5.12的简单用法
  • OpenHarmony定制系统组合按键(二)
  • Linux线程入门
  • 麻省理工新突破:家庭场景下机器人实现精准控制,real-to-sim-to-real学习助力
  • Linux上给SD卡创建分区
  • Linux下挂载目录如何进行操作
  • 华为OD机试真题——最小矩阵宽度(宽度最小的子矩阵)(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 【异常解决】一招解决Navicat连接线上数据库时,隔一段时间不操作出现的卡顿问题
  • 【JavaEE】Spring事务
  • 【JavaEE】-- 网络原理
  • dwcs5怎么把做的网站适屏/百度指数上多少就算热词
  • 数字营销网站建设/正规引流推广公司
  • 武夷山网站制作/seo专业培训中心
  • 济南润滑油网站制作/seo推广知识
  • 青岛美容化妆品外贸网站建设/婚恋网站排名
  • 广州市 住房建设局网站首页/软文营销的优势