下载此文档

面的CC编程规范.docx


文档分类:IT计算机 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
该【面的CC编程规范 】是由【艳萍】上传分享,文档一共【15】页,该文档可以免费在线阅读,需要了解更多关于【面的CC编程规范 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。最全面的C/C++编码规范总结
来源:作者:51cto
对于不同的编程语言来说;具体的编码规范可以有很大的不同;但是其宗旨都是一致的;就是保证代码在高质量完成需求的同时具备良好的可读性、可维护性..例如我们可以规定某个项目的C语言程序要遵循这样的规定:变量的命名;头文件的书写和include等等..
下面是一些广为采用的编码规范:
GNUCodingStandards
GuidelinesfortheUseoftheCLanguageinVehicleBasedSoftware
C++CodingGuidelines
SUNCodeConventionsforJava
以下是一些介绍编码、编码规范的书籍:
C++编码规范;陈世忠;人民邮电出版社;2002
高质量程序设计指南:C++/C语言;林锐等;电子工业出版社;2003
注:以下只是根据课题组已有的经验给出的总结;并非对所有场景均适用..
对于高质量的工程;一般会做到:
代码简洁精炼;美观;可读性好;高效率;高复用;可移植性好;高内聚;低耦合;没有冗余;不符合这些原则;必须特别说明..
规范性;代码有规可循..特殊排版、特殊语法、特殊指令;必须特别说明..
一、文件排版方面

;后用户头文件..
;稳定的目录结构;应采用包含子路径方式..
;不稳定目录结构;应在dsp中指定包含路径..
:include<>
:include""
..

;;C++
;或者小写混合..;..不要用无意义的名称:;;;
;应使用ifdef控制块..
..
;首先是包含代码块;其次是宏定义代码块;然后是全局变量;全局常量;类型定义;类定义;内联部分..
;包含指令;宏定义;全局变量;函数定义..

..
;特殊情况下可用一个或者不需要空行..

、控制块;include部分、宏定义部分、class部分、全局常量部分、全局变量部分、函数和函数之间;用两个空行..
二、注释方面

;文件名称;文件说明;生成日期可选

;说明函数的用途..
;需要说明参数的目的;由谁负责释放等等..
;注释写在代码之前;不要放到代码行之后..
..
;包括但不限于:赋值;函数调用;表达式;分支等等..
;或者需要进一步优化的代码;应加上//TODO...
;加上注释//onlyforDEBUG
;加上注释//NOTE...
;如for;while;do等;可加上//endfor|while|do
三、命名方面

:在编写一个子模块或派生类的时候;要遵循其基类或整体模块的命名风格;保持命名风格在整个模块中的同一性..
:标识符采用英文单词或其组合;应当直观且可以拼读;可望文知意;用词应当准确;避免用拼音命名..
&&最大化信息量原则:在保持一个标识符意思明确的同时;应当尽量缩短其长度..
:不要出现仅靠大小写区分的相似的标识符;例如"i"与"I";"function"与"Function"等等..
:程序中不要出现名字完全相同的局部变量和全局变量;尽管两者的作用域不同而不会发生语法错误;但容易使人误解..
:用正确的反义词组命名具有互斥意义的标识符;如:"nMinValue"和"nMaxValue";"GetName"和"SetName"….
:尽量避免名字中出现数字编号;如Value1;Value2等;除非逻辑上的确需要编号..这是为了防止偷懒;不肯为命名动脑筋而导致产生无意义的名字因为用数字编号最省事..
;C;M;R类
;不对资源拥有控制权;在析构过程中没有释放资源动作..
..该类不能从栈上定义变量;只能从堆上创建..
..
;通常是系统固有类型..除了特殊情况;不应在开发代码中出现R类型..

;例如:HandleTimerEvent;不推荐采用java风格;例如handleTimerEvent;除了标准c风格代码;不推荐用下划线;例如;handle_event..
;用后缀L..
;且进清除栈;用后缀LC..
;且删除对象;用后缀LD..

..
..用aBuffer即可..
;应考虑用结构代替..
;应在排版上可考虑每个参数占用一行;参数名竖向对齐..

..
..用mBuffer即可..

..例如;inti;
;例如voidpBuffer;

..

..
..
..

;可以沿用原有风格;不用C++的命名规范..
四、代码风格方面

;不能用空格;输入内容之后统一用空格..除了最开始的缩进控制用Tab;其他部分为了对齐;需要使用空格进行缩进..这样可以避免在不同的编辑器下显示不对齐的情况..
..
"::";"->";"."前后加空格..
";";";"之前加空格..
{
;结构;枚举;联合:大括号另起一行

{需要新起一行;在{之前不能有缩进..
;函数体内不能出现两个空行..
;函数体内不能宏定义指令..
;逻揖上密切相关的语句之间不加空行;其它地方应加空行分隔..
;函数之间可以不用空行;推荐用一个空行..

"if"、"for"、"while"、"do"、"try"、"catch"等语句自占一行;执行语句不得紧跟其后..不论执行语句有多少都要加"{}"..这样可以防止书写和修改代码时出现失误..
"if"、"for"、"while"、"do"、"try"、"catch"的括号和表达式;括号可紧挨关键字;这样强调的是表达式..

;用}else{编写为一行;不推荐用3行代码的方式..

;如只定义一个变量;或只写一条语句..这样的代码容易阅读;并且方便于写注释..
;为了追求代码排版美观;可将变量竖向对齐..
;能在当前屏幕内全部可见为宜..

..
;应用{}包含起来..
;可考虑将case代码块写为一行代码..
;复杂的case之间应考虑用空行分割开..
;不要和case写到一行..
..
..

;;或者while1或者whiletrue

..
..如果用多行;则应用Tab缩进..
;应将基类分行;并采用Tab缩进对齐..
;应在该组虚函数前写注释//implementXXX
..

..
..
..

..
五、类型
定义指针和引用时和&紧跟类型..尽量避免使用浮点数;除非必须..用typedef简化程序中的复杂语法..避免定义无名称的类型..例如:typedefenum{EIdle;EActive}TState;少用union;如果一定要用;则采用简单数据类型成员..用enum取代一组相关的常量..不要使用魔鬼数字..尽量用引用取代指针..定义变量完成后立即初始化;勿等到使用时才进行..如果有更优雅的解决方案;不要使用强制类型转换..
六、表达式

面的CC编程规范 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人艳萍
  • 文件大小20 KB
  • 时间2022-10-07
最近更新