Micrium公司是著名的RTOS——μC/OS的提供商。μC/OS在实时嵌入式领域应用非常广泛,而且其代码符合MISRA-2004规范,因此非常值得汽车嵌入式工程师借鉴与参考。
采用良好的代码规范可以大大提高软件的维护性和可读性。代码规范没有唯一标准,坚持一贯的代码风格才是王道。
本文翻译了Micrium的代码规范,作为平时开发的参考文档。

命名规则

  • 合适的命名
    对变量、函数、文件名等对象命名,应根据其用途与上下文环境来取,建议使用英文名而不是汉语拼音。
    过短、或者过于含糊的命名应避免,如Tbl[], Task(), MODULE_ERR, 或 p;特殊情况是,循环中可以使用i,j这样的过短的命名,因为大家都知道其意思。
    命名应该做到具体、精确、简洁,如
    NetOS_TCP_RxQ_TimeoutTbl_tick[],
    FTPs_CtrlTask(),
    CLK_OS_ERR_SIGNAL,
    p_seg_hdr。

  • 唯一性
    所有模块、文件名、函数名、全局变量名必须是唯一的(MISRA 2004 Rules 5.5, 5.6, 5.7)。局部变量名不要与全局变量,或者外部引用变量重名。
    同样,命名不要与标准库中的函数名重名。

  • 名称长度
    不允许出现前31个字符完全相同的多个命名(MISRA 2004 Rules 1.4 ,5.1)。可以允许多余31个字符的命名,但是编译器只检测前31个字符。因此所有的命名前31个字符必须唯一。

  • 层次感
    命名应有层次划分,命名的前面部分可以加上模块名,如
    • Module-Object
    • Module-Object-Operation
    • Module-Object-Status
    • Module-Object-Handler
    • Module-Object-State-Handler
    • Module-Status
    • Module-Status-Object
    • Module-Question-Object
    • Module-Operation-Object

  • 单位
    在命名中包含单位的情况时,单位符号写在命名最后,尽量用小写表示,前面用下划线连接,如
    驼峰命名:NetOS_TimeoutMin_us
    大写命名:NET_APP_TIME_DLY_MAX_mS,此时用mS来代替ms。

Micrium代码规范——命名规则相关推荐

  1. C语言初学者编程规范—命名规则

    原文地址:C语言初学者编程规范-命名规则 C是一门朴素的语言,你使用的命名也应该这样.与Modula-2和Pascal程序员不同,C程序员不使用诸如"ThisVariableIsATempo ...

  2. cadence SPB17.4 - 焊盘的规范命名规则

    前言 PCB Editor 17.4 导入其他EDA系统(e.g. AD)的pcb文件, 转换成自己的格式. 然后再将库导出到其他目录时,可以看到有单独的焊盘.pad文件. 很好奇这些焊盘文件的命名方 ...

  3. 测试类/测试包/演示类/演示包的命名规范/命名规则

    文章目录 1.测试类的命名规范 2.测试程序的包命名规范 3.测试方法命名规范 4.演示类/范例类的命名规范 1.测试类的命名规范 测试类命名规则:Test + 要测试的类名称 测试类命名规则:功能名 ...

  4. R语言入门教程知识 第二章 赋值代码与命名规则

    快捷键 新建脚本:  Ctrl + shift + N 清理控制台快捷键: Ctrl + L 赋值快捷键ALT + -  赋值法 1.符号方式赋值: 对象名 <- 对象值 2.函数方式赋值:as ...

  5. 常用的命名规范/命名规则

    文章目录 骆驼式命名法(CamelCase) 帕斯卡命名法(PascalCase) 串式命名法(KebabCase) 下划线命名法(UnderScoreCase) 骆驼式命名法(CamelCase) ...

  6. JAVA标识符命名规则及命名规范

    文章目录 一.标识符可以标识什么 二.标识符是什么 三.标识符命名规则 四.标识符命名规范 一.标识符可以标识什么 标识符可以标识类名.方法名.变量名.接口名.常量名等. 二.标识符是什么 凡是程序员 ...

  7. 最佳实践之Android代码规范

    命名规范 包命名规范 采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为com,二级包名为xxx(可以是公司域名或者个人命名),三级包名根据应用进行命名,四级包名 ...

  8. Android进阶之路 - 代码规范

    后来 - 回头再看该篇的时候,发现当项目处于中后期的时候,命名规范还是不太严谨,扩展性有限,所以推荐各位可以借鉴阿里.美团.华为等大厂的命名规范 ~ 关于代码规范(主要针对Android),我于202 ...

  9. 数据开发 的 代码规范 以及 代码评审脚本

    文章目录 1.概述 2.代码规范 2.1.通用代码规范 2.2.配置文件和传参规范 2.3.Python代码规范 2.4.SQL代码规范 2.5.其它 3.代码评审 自动化脚本 4.数据逻辑校验机制 ...

  10. C# 中委托实例的命名规则

    我们知道一个类中的属性应该用名词或名词性短语,方法用动词或动宾短语:但是委托的实例却似乎有一些游离.因为在 .NET 中委托代表的是一个动作,既可以把它看作是名词,也可以看作是动词.在用法上,既可以像 ...

最新文章

  1. 分词verterbi算法实现NLP分词,作者写的经验博客很丰富,需要重点读
  2. matlab用于系统框图建模的函数,MATLAB产品家族中文
  3. 【力荐】Exadata火线救援:10TB级数据修复经典案例详解!
  4. 中国农业银行数据中心智能布线系统
  5. 阿里 Goldeneye 四个环节落地智能监控:预测、检测、报警及定位
  6. GitHub项目推荐
  7. srs信道估计_信道估计(channel estimation)图解——从SISO到MIMO原理介绍
  8. 异步请求(多种方式)
  9. 异常值离群点检测算法---箱线图四分位检测
  10. Oracle analytics server(OAS) 支持 mysql 社区版配置
  11. 魔兽延迟最低的服务器,魔兽世界延迟高怎么回事_魔兽世界延迟高解决方法_玩游戏网...
  12. mt950报文解析_MT报文有两种格式
  13. 卡方分布(Chi-Squared Distribution)
  14. truetype字体怎么转换成普通字体_TrueType字体作用|如何在文档嵌入 TrueType 字体中...
  15. GPS 驯服时钟原理
  16. 细数抖音电商的7问题
  17. 俊哥的HADOOP之路
  18. 在使用tensorboard时报错tensorboard: error: invalid choice: ‘Recognizer\\logs‘ (choose from ‘serve‘, ‘dev‘)
  19. Shell和Jenkins讲解
  20. matplotlib marker 设置

热门文章

  1. CAML: FAST CONTEXT ADAPTATION VIA META-LEARNING
  2. win10自带虚拟机 Hyper-V下载和安装linux系统
  3. Maui Shell 来了,开启 Linux 桌面新时代!
  4. bat脚本修改文件内容
  5. Html 中的特殊符号表示
  6. 如何利用国内开源镜像站,下载想要的资源
  7. 2-软件测试与测试优先编程
  8. 计算机游戏软件视频,电脑录制游戏视频软件哪个好,电脑游戏录制软件排行
  9. 关于ORACLE删除分区
  10. spark GBT算法