- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
语言编程规范
对于程序员来说,能工作的代码并不等于“好”的代码。 “好”代码的指标很多,包括易
读、易维护、易移植和可靠等。其中,可靠性对嵌入式系统非常重要,尤其是在那些对安全
性要求很高的系统中,如飞行器、汽车和工业控制中。这些系统的特点是:只要工作稍有偏
差,就有可能造成重大损失或者人员伤亡。一个不容易出错的系统,除了要有很好的硬件设
计( 如电磁兼容性 ) ,还要有很健壮或者说“安全”的程序。
然而,很少有程序员知道什么样的程序是安全的程序。很多程序只是表面上可以干活,
还存在着大量的隐患。当然,这其中也有 C 语言自身的原因。因为 C 语言是一门难以掌握的
语言,其灵活的编程方式和语法规则对于一个新手来说很可能会成为机关重重的陷阱。 同时,
C 语言的定义还并不完全,即使是国际通用的 C 语言标准,也还存在着很多未完全定义的地
方。要求所有的嵌入式程序员都成为 C 语言专家,避开所有可能带来危险的编程方式,是不
现实的。最好的方法是有一个针对安全性的 C 语言编程规范,告诉程序员该如何做。
本规范在制定过程中,主要参考了业界比较推崇的《华为软件编程规范和范例》和《 MI SRA 2004 规则》,适合 C 语言初学者使用,目的在于在教学中培养学生良好的编程规范和意
识、素质,促进所设计程序安全、健壮、可靠、可读与可维护 ( 程序简单、清晰 ) 。考虑到面向的是初学者,为便于教学和课程考核操作,本规范中的要求比较基本。事实上,很多公司
都有自己规定的代码风格,包括命名规则、缩进规则等,学生参加工作后,应再进一步学习和应用公司的规范。
建议学生在学习本规范的同时,花点时间阅读本规范的参考文献原文,特别是熟读本规
范的参考文献之一的《 “安全第一”的 C 语言编程规范》,深刻理解编程规范与程序安全、健
壮、可靠、可读、可维护间的关系和作用,在学习和工作中养成良好的编程风格。
排版
严格采用阶梯层次组织程序代码
函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格, case 语句下的情况处理语句也要遵从语句缩进要求。
程序块的分界符 ( 如 C/C++ 语言的大括号‘ { ’ 和‘ } ’) 应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及 if 、for 、do 、while 、 switch 、case 语句中的程序都要采用如上的缩进方式。
各层次缩进的风格采用 TAB缩进 (TAB 宽度原则上使用系统默认值, TC使用 8 空格宽度,
VC使用 4 空格宽度 ) 。示例:
if (x is true)
{
we do y
}
else
{
if (a b)
{
...
}
else
{
...
}
}
和:
if (x == y)
{
...
}
else if (x y)
{
...
}
else
{
....
}
注意,右括号所在的行不应当有其它东西,除非跟随着一个条件判断。也就是 do-while
语句中的“ while ”,象这样:
do
{
body of do-loop
} while (condition);
说明:代码离不开缩进,缩进背后的思想是:清楚地定义一个控制块从哪里开始,到哪
里结束。尤其是在你连续不断的盯了 20 个小时的屏幕后,如果你有大尺寸的缩进。你将更容
易发现缩进的好处。
关于缩进主要有两个争论,一个是该用空格 (Space) 还是用制表符 (Tab) ,另外一个是该
用 4 格缩进还是 8 格缩进甚至都不是。 建议总是使用 Tab 缩进,因为几乎所有的代码 ( 不仅仅是 C代码 ) 都在使用 Tab 缩进。
现在,有些人说 8 个字符大小的缩进导致代码太偏右了, 并且在一个 80 字符宽的终端屏
幕上看着很不舒服。对这个问题的回答是:如果你有超过 3 个级别的缩进,你就有点犯糊涂了,应当修改你的程序。简而言之, 8 个字符的缩进使程序更易读,而且当你把功能隐藏的
太深时,多层次的缩进还会对此很直观的给出警告。要留心这种警告信息。
例外:对于由开发工具自动生成的代码可以有不一致。
及时折行
较长的语句 (80 字符 ) 要分成多行书写,长表达式要在低优先级操作符处划分新行,操
作符放在新行之首,划分出的新行要进行适当的缩进 ( 至少 1 个 TAB位置 ) ,使排版整齐,语
句可读。示例:
report_or_not_flag = ((taskno MAX_ACT_TASK_NUMBER)
(n7stat_stat_item_valid (stat_item))
(act_task_table[taskno].result_data != 0));
循环、判断等语句中若有较长的表达式或语句,则要进行
您可能关注的文档
- 2018济南市初中学业水平考试一分一段表(全市).docx
- 2018版信息安全专业本科人才培养方案.docx
- 2018生产岗位技能大比武方案.docx
- 2018福建中考物理真题及答案.docx
- 2018高考全国卷Ⅲ理综卷答案及解析.docx
- 2019-2020学年新教材高中数学第八章立体几何初步8.6.1直线与直线垂直8.6.2直线与平面垂直(第1课时).docx
- 2019-2020学年高中化学第四章电化学基础第4节金属的电化学腐蚀与防护限时规范训练新人教版选修4.docx
- 2019-2020学年高中化学课时分层作业(十五)乙醇(含解析)新人教版必修2.docx
- 2019-2020学年高中化学课时分层作业5共价键(含解析)新人教版选修3.docx
- 2019-新教材高中化学单元素养评价(一)(含解析)新人教版必修1.docx
- 2024年05月山东交通职业学院招考聘用博士研究生50人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽芜湖市弋江区老年学校(大学)工作人员特设岗位公开招聘2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东东营河口区教育类事业单位招考聘用22人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东交通职业学院招考聘用100人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东威海职业学院招考聘用高层次人才2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽石台县事业单位工作人员33人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东滨州市博兴县事业单位公开招聘考察笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽蚌埠固镇县湖沟镇选聘村级后备干部7人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东省安丘市教育和体育局所属事业单位学校公开2024年招考232名工作人员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东临沂临港经济开发区工作人员(5人)笔试历年典型题及考点剖析附带答案含详解.docx
文档评论(0)