1 / 26
文档名称:

c语言编程规范.doc

格式:doc   大小:108KB   页数:26页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c语言编程规范.doc

上传人:dreamclb 2018/11/22 文件大小:108 KB

下载得到文件列表

c语言编程规范.doc

相关文档

文档介绍

文档介绍:C语言初学者编程规范对于程序员来说,能工作的代码并不等于“好”的代码。“好”代码的指标很多,包括易读、易维护、易移植和可靠等。其中,可靠性对嵌入式系统非常重要,尤其是在那些对安全性要求很高的系统中,如飞行器、汽车和工业控制中。这些系统的特点是:只要工作稍有偏差,就有可能造成重大损失或者人员伤亡。一个不容易出错的系统,除了要有很好的硬件设计(如电磁兼容性),还要有很健壮或者说“安全”的程序。然而,很少有程序员知道什么样的程序是安全的程序。很多程序只是表面上可以干活,还存在着大量的隐患。当然,这其中也有C语言自身的原因。因为C语言是一门难以掌握的语言,其灵活的编程方式和语法规则对于一个新手来说很可能会成为机关重重的陷阱。同时,C语言的定义还并不完全,即使是国际通用的C语言标准,也还存在着很多未完全定义的地方。要求所有的嵌入式程序员都成为C语言专家,避开所有可能带来危险的编程方式,是不现实的。最好的方法是有一个针对安全性的C语言编程规范,告诉程序员该如何做。本规范在制定过程中,主要参考了业界比较推崇的《华为软件编程规范和范例》和《MISRA2004规则》,适合于非计算机专业的C语言初学者使用,目的在于在教学中培养学生良好的编程规范和意识、素质,促进所设计程序安全、健壮、可靠、可读与可维护(程序简单、清晰)。考虑到面向的是初学者,为便于教学和课程考核操作,本规范中的要求比较基本。事实上,很多公司都有自己规定的代码风格,包括命名规则、缩进规则等,学生参加工作后,应再进一步学习和应用公司的规范。建议学生在学习本规范的同时,花点时间阅读本规范的参考文献原文,特别是熟读本规范的参考文献之一的《“安全第一”的C语言编程规范》,深刻理解编程规范与程序安全、健壮、可靠、可读、可维护间的关系和作用,在学习和工作中养成良好的编程风格。、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。各层次缩进的风格采用TAB缩进(TAB宽度原则上使用系统默认值,TC使用8空格宽度,VC使用4空格宽度)。示例:if(xistrue){ wedoy}else{ if(a>b) { ... } else { ... }}和:if(x==y){ ...}elseif(x>y){ ...}else{ ....}注意,右括号所在的行不应当有其它东西,除非跟随着一个条件判断。也就是do-while语句中的“while”,象这样:do{ bodyofdo-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));循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。示例:if((taskno<max_act_task_number) &&(n7stat_stat_item_valid(stat_item))){ ...//programcode}for(i=0,j=0;(i<BufferKeyword[word_i

最近更新

采购流程图精公开课获奖课件赛课一等奖课件 23页

校园安全守护者-学生安全防范与应急处理 27页

服务行业客户投诉处理流程-客户服务经理 35页

第六讲多元回归分析深入专题公开课获奖课件赛.. 51页

时尚之源:创新与实践-灵感转化与个人风格培养.. 24页

自动化集装箱起重机远程操控安全作业规程 第2.. 10页

开发项目转让协议一(标准版) 7页

2021-工作服采购合同范本(标准版) 7页

仓储合作经营协议(标准版) 7页

入股协议书范本常用版 6页

农村赡养老人协议书范例(标准版) 5页

土石方承包运输合同通用版 17页

房屋销售合同补充协议(标准版) 8页

最新网吧用工合同范例(标准版) 4页

框架性合作协议书正式版样本 6页

汽车质押借款合同正式版 7页

石家庄场地租赁合同范本(标准版) 6页

简单房屋出租合同简易模板(标准版) 3页

设计印刷委托合同书最新整理版 8页

车位购买协议(标准版) 5页

2025年二级建造师之二建建筑工程实务考试题库.. 162页

项目结题科技报告范本 10页

2024年全国中学生生物学竞赛湖南省初赛试题 13页

免疫球蛋白单体的结构 17页

剧本杀剧本——四人本《暗船》 1页

起重机安全培训 51页

IPMP资格认证D级全真模拟考试题答案解析 19页

2016省教育科研论文获奖名单 4页

大学物理 牛顿运动定律 22页

全国中学生数理化学科能力展示活动组委会 8页