Micrium代码规范——命名规则
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代码规范——命名规则相关推荐
- C语言初学者编程规范—命名规则
原文地址:C语言初学者编程规范-命名规则 C是一门朴素的语言,你使用的命名也应该这样.与Modula-2和Pascal程序员不同,C程序员不使用诸如"ThisVariableIsATempo ...
- cadence SPB17.4 - 焊盘的规范命名规则
前言 PCB Editor 17.4 导入其他EDA系统(e.g. AD)的pcb文件, 转换成自己的格式. 然后再将库导出到其他目录时,可以看到有单独的焊盘.pad文件. 很好奇这些焊盘文件的命名方 ...
- 测试类/测试包/演示类/演示包的命名规范/命名规则
文章目录 1.测试类的命名规范 2.测试程序的包命名规范 3.测试方法命名规范 4.演示类/范例类的命名规范 1.测试类的命名规范 测试类命名规则:Test + 要测试的类名称 测试类命名规则:功能名 ...
- R语言入门教程知识 第二章 赋值代码与命名规则
快捷键 新建脚本: Ctrl + shift + N 清理控制台快捷键: Ctrl + L 赋值快捷键ALT + - 赋值法 1.符号方式赋值: 对象名 <- 对象值 2.函数方式赋值:as ...
- 常用的命名规范/命名规则
文章目录 骆驼式命名法(CamelCase) 帕斯卡命名法(PascalCase) 串式命名法(KebabCase) 下划线命名法(UnderScoreCase) 骆驼式命名法(CamelCase) ...
- JAVA标识符命名规则及命名规范
文章目录 一.标识符可以标识什么 二.标识符是什么 三.标识符命名规则 四.标识符命名规范 一.标识符可以标识什么 标识符可以标识类名.方法名.变量名.接口名.常量名等. 二.标识符是什么 凡是程序员 ...
- 最佳实践之Android代码规范
命名规范 包命名规范 采用反域名命名规则,包名全部小写,连续的单词只是简单地连接起来,不使用下划线,一级包名为com,二级包名为xxx(可以是公司域名或者个人命名),三级包名根据应用进行命名,四级包名 ...
- Android进阶之路 - 代码规范
后来 - 回头再看该篇的时候,发现当项目处于中后期的时候,命名规范还是不太严谨,扩展性有限,所以推荐各位可以借鉴阿里.美团.华为等大厂的命名规范 ~ 关于代码规范(主要针对Android),我于202 ...
- 数据开发 的 代码规范 以及 代码评审脚本
文章目录 1.概述 2.代码规范 2.1.通用代码规范 2.2.配置文件和传参规范 2.3.Python代码规范 2.4.SQL代码规范 2.5.其它 3.代码评审 自动化脚本 4.数据逻辑校验机制 ...
- C# 中委托实例的命名规则
我们知道一个类中的属性应该用名词或名词性短语,方法用动词或动宾短语:但是委托的实例却似乎有一些游离.因为在 .NET 中委托代表的是一个动作,既可以把它看作是名词,也可以看作是动词.在用法上,既可以像 ...
最新文章
- 分词verterbi算法实现NLP分词,作者写的经验博客很丰富,需要重点读
- matlab用于系统框图建模的函数,MATLAB产品家族中文
- 【力荐】Exadata火线救援:10TB级数据修复经典案例详解!
- 中国农业银行数据中心智能布线系统
- 阿里 Goldeneye 四个环节落地智能监控:预测、检测、报警及定位
- GitHub项目推荐
- srs信道估计_信道估计(channel estimation)图解——从SISO到MIMO原理介绍
- 异步请求(多种方式)
- 异常值离群点检测算法---箱线图四分位检测
- Oracle analytics server(OAS) 支持 mysql 社区版配置
- 魔兽延迟最低的服务器,魔兽世界延迟高怎么回事_魔兽世界延迟高解决方法_玩游戏网...
- mt950报文解析_MT报文有两种格式
- 卡方分布(Chi-Squared Distribution)
- truetype字体怎么转换成普通字体_TrueType字体作用|如何在文档嵌入 TrueType 字体中...
- GPS 驯服时钟原理
- 细数抖音电商的7问题
- 俊哥的HADOOP之路
- 在使用tensorboard时报错tensorboard: error: invalid choice: ‘Recognizer\\logs‘ (choose from ‘serve‘, ‘dev‘)
- Shell和Jenkins讲解
- matplotlib marker 设置