版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——嵌入式系统中的C语言编码规范
嵌入式系统中的C语言编码规范
2023-1
技术标准
TechniqueStandard
1范围
本文件规定了书写程序代码时的一般规则和要求。本文件适用于研发中心监控硬件室的嵌入式程序开发过程。
2原则
2.1目的
为了统一在项目开发中的程序编码风格,提高代码的编写质量和可重用性,使代码具有如下的特点:可移植性,一致性,易维护性,易理解性,整齐、简朴和明了。
2.2基本原则
1)书写的所有C语言代码应遵守ANSIC规范。2)保持代码简单。3)语言描述直接、明了。4)风格要保持一致。5)要避免语句繁杂。6)慎重使用GOTO语句。7)及时更新旧代码。
8)解释要通俗易懂,不产生歧义。
3源文件
3.1注意代码行的宽度
代码行的宽度不可太长,以避免代码在显示器上显示时和被打印出来后的清单不便阅读。较长的语句要分成多行书写,划分出的新行要进行适当的缩进,使排版整齐,语句易读。假使能够做到:“长表达式在低优先级操作符处划分新行,操作符放在新行之首〞,就最好。
3.2关于制表符(TAB)
由于TAB符(ASCII码为0x09)在不同的计算机和打印机上所表现的可能不同,使得维护不便。要使用适合数量的空格符(ASCII码为0x20)代替TAB来对齐文字。
3.3使用4个空格的缩进方式
程序块要采用缩进风格编写,缩进的空格数为4,缩进只使用空格键,不用TAB键。
3.4程序块的分界符
程序块的分界符(大括号“{〞和“}〞)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、结构体的定义、联合体的定义、枚举的定义以及if、for、do、
文件标题文件编号页码第1页技术标准
TechniqueStandard
while、switch、case语句中的程序都要采用如上的缩进方式。
3.5关于文件头和函数头部的解释
源文件(包括说明性如:头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应放置解释文字,解释必需列出:版权说明、版本号、完成日期、、内容、模块目的/功能、主要函数及其功能、与其它文件的关系、修改日志等,头文件的解释中还应有函数功能简要说明。
函数头部也应进行解释,解释时要列出:函数名、函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等(必要时要举例说明函数的使用方法)。
3.6文件书写的层次
实现文件(.C文件)的层次:
FileheadingRevisionhistory#include
#defineconstantsMacros
LocaldatatypesLocalvariablesLocaltables
LocalfunctionprototypesGlobalfunctionsLocalfunctions声明文件(.H文件)的层次:
FileheadingRevisionhistory#defineconstantsGlobalmacrosGlobaldatatypesGlobalvariablesExternals
Globalfunctionprototypes
3.7用解释将各个主要段分隔
使用如下的方式分隔:/*
*******************************************************************************DataTypes
*******************************************************************************/
typedefunsignedcharBOOLEAN;/*
*******************************************************************************Prototypes
*******************************************************************************/
文件标题文件编号页码第2页技术标准
TechniqueStandard
BOOLEANTaskRdy(void);
空行起着分隔程序段落的作用,空行得体(不过多也不过少)将使程序的布局更加明了。
3.8必需要采取一定的措施防止头文件被重复引用
譬如在使用HIWARE的HI-CROSS+编译器时可以使用如下的方法:#ifndef_MAIN_H#define_MAIN_HBodyoftheheaderfile.#endif
3.9使用#include
用#include〈filename.h〉格式来引用标准库的头文件(编译器将从标准库目录开始探寻),用#include“filename.h〞格式来引用非标准库的头文件(编译器将从用户的工作目录开始探寻)。
4解释
4.1原则上使用中文解释。4.2使每行解释都有其价值
一般状况下,源程序有效解释量必需在20%以上。写解释时要明智些!假使一段代码的规律关系很繁杂,注解将有助于别人理解代码的意图。但假使规律关系直线向前,避免加上并非必需的注解。解释使用的语句要简单,表达要明了、确凿,不要使人产生歧义,不可喧宾夺主。
4.3分开解释和代码,而不要混在一起。以免阅读代码时注意力被分散
尽可能少的在代码语句中嵌入解释,不要象下面的例子中的那样。voidClkUpdateTime(void)
{/*DONOTcommentlikethis!*//*Updatetheseconds*/
if(ClkSec>=CLK_MAX_SEC){
ClkSec=0;
/*Updatetheminutes*/
if(ClkMin>=CLK_MAX_MIN){
ClkMin=0;
/*Updatethehours*/
if(ClkHour>=CLK_MAX_HOURS){ClkHour=0;}else{ClkHour++;}}
文件标题文件编号页码第3页技术标准
TechniqueStandard
else{
ClkMin++;}}else{
ClkSec++;}}
4.4解释要醒目,要使其易于同代码区分出来
不要象下面的例子中的那样。
/*ThistypeofcommentcanleadtoconfusionespeciallywhendescribingafunctionlikeClkUpdateTime().Thefunctionlookslikeactualcode!*/
4.5尽可能将解释放在语句尾部,并且对齐解释。4.6使用适合的方法来屏蔽暂时不执行的代码块
可以使用如下的方法来屏蔽暂时不执行的代码块,而不要修改解释。#if0
/*Commentsoutthefollowingcode*//*Sizeofdisplaybuffertable*//*Max.numberofcharactersinXaxis*//*Max.numberofcharactersinYaxis*/
#defineDISP_TBL_SIZE5#defineDISP_MAX_X80#defineDISP_MAX_Y25#defineDISP_MASK0x5F#endif
5命名规则
5.1总约定
直观且可以拼读,可望文知义。标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。
#defineconstants:#definemacros:typedefs:enumtags:
所有的字母都用大写形式;
标识符中的各个单词之间用下划线分开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电视台新闻编辑每日工作内容安排
- 高新技术企业法律合规部工作手册
- 京东物流配送优化面试指南
- 网络文学编辑面试技巧
- 国企能源行业技术岗位面试宝典
- 外包服务公司项目管理的职位面试要点解析
- 银行风险控制岗位面试技巧详解
- 中医药研究所医学研究岗面试解析
- 人工智能产品的创新:设计与实践
- 猜猜他是谁作文
- 小学六年级体育教案(表格式)
- 中药的起源和中药的发展培训课件
- 实用综合教程(第二版)外教社-第1册教案
- 2023年考研考博-考博英语-中央美术学院考试历年真题摘选含答案解析
- 2009-2022历年上海事业单位考试《基本素质测验》真题摘选附带答案详解(2023上岸必备)
- 广西版六年级下册《美术》全册教案
- GB/T 4056-2019绝缘子串元件的球窝联接尺寸
- 犯罪学全套教学课件
- 巴菲特三大经典演讲之二-1998年佛罗里达大学商学院演讲
- 2022年山东警察学院教师招聘考试笔试试题及答案解析
- 七年级下册心理健康教育教案(全册)
评论
0/150
提交评论