您好,欢迎访问三七文档
C++程序书写规范万健2009/8/8C++程序书写规范1目录一.前言.............................................................................................................................2二.C++程序书写规范......................................................................................................31.头文件.....................................................................................................................32.语句.........................................................................................................................33.程序注释.................................................................................................................34.缩进.........................................................................................................................45.程序块.....................................................................................................................46.空行.........................................................................................................................57.空格.........................................................................................................................68.圆括弧.....................................................................................................................69.浮点常量.................................................................................................................710.对齐.........................................................................................................................711.类的声明.................................................................................................................812.指针和引用变量.....................................................................................................9三.标识符命名规则.......................................................................................................101.符号常量...............................................................................................................112.类,常数,结构,枚举和类型名.......................................................................113.变量名,参数名,缩略语...................................................................................114.函数名...................................................................................................................115.匈牙利命名法.......................................................................................................12四.C/C++代码格式化工具............................................................................................131.SourceFormatX......................................................................................................132.Astyle.....................................................................................................................13五.参考文献...................................................................................................................14C++程序书写规范2一.前言在商品化软件开发中,非常重视程序编码规范,不同的公司或组织有不同规范,比如:“GNUCodingStandards”、“GoogleC++StyleGuide”等。C++程序编码规范(C++CodingStandard)包含以下两个含义:1.C++程序设计规范2.C++程序书写规范程序设计规范牵涉程序开发过程中可靠性、可维护性、安全性的话题,而程序书写规范是程序员约定的通行书写格式。本文主要讨论的是C++的程序书写格式。现在计算机专业教学过程中不重视程序书写格式规范化教学,一些教材中的程序书写格式五花八门,造成学生在大学四年中缺乏规范化的编码训练,直接影响学生毕业求职与工作。C++的程序书写规范最初缘自K&D的《CProgrammingLanguage》一书以及Unix早期的源代码,一般称为“K&D的风格”,最典型的特征是函数参数声明、带下划线的标识符和花括号的位置,早期的程序缩进通常为8个空格,如下面程序:intsample_function()intx,y;/*x和y为函数的形式参数*/{……if(……){……;……;}……}随着C语言的发展,特别是C++的出现,特别是微软公司的Windows程序设计的影响,程序设计风格发生的一系列的变化,出现的GNU、Linux、VC等规范,也出现标识符的匈牙利命名法等规范,主要还是分为Unix/Linux和Windows两大流派,Java的风格偏向于Unix/Linux。本文主要是综合网络上发布的资料,根据程序开发的通行做法,约定了C++程序的书写规范。C++程序书写规范3二.C++程序书写规范1.头文件头文件必须包含#ifndef…#endif结构。#ifndefCOM_COMPANY_MODULE_CLASSNAME_H#defineCOM_COMPANY_MODULE_CLASSNAME_H:#endif//COM_COMPANY_MODULE_CLASSNAME_H参见:文献[1]第40条2.语句一条语句占一行或多行,避免一行写多条语句,除非这些语句非常相关。参见:文献[2]“OneStatementPerLine”章节3.程序注释程序注释包含段注释和行注释两种,段注释单独一行或几行,主要说明下面一段程序完成什么功能,行注释用于解释某条语句的功能。注意注释书写的对齐。//该函数完成的功能voidSampleFunction(){//段注释1……//行注释1……//行注释2……C++程序书写规范4//段注释2……if(……){//段注释3//……}}4.缩进程序块缩进大小为2到4个空格之间,通常为4个空格。不用采用TAB控制符,而是采用空格符。如在VisualStudio2005中选择“工具-选项-文本编辑器-C/C++-制表符-插入空格”、在DEVC++中的“EditorOptions”取消“UseTabCharacter”。参见:文献[1]第38条文献[2]“Indentation/Tabs/SpacePolicy”章节文献4“Spacesvs.Tabs”章节5.程序块程序块的花括号位置有三种写法,推荐采用第一或第二种格式//现代C/C++写法while(!done){doSomething();done=moreToDo();}//传统C/C++写法while(!done){doSomething();done=moreToDo();}C++程序书写规范5//GNU写法while(!done){doSomething();done=moreToDo();}参见:文献[1]第72条文献[5]“FormattingYourSourceCode”章节6.空行正如一篇文章中要有自然段一样,在程序中要适当使用空行来表示程序段落。在必要时,程序段落的开始要加上注释,说明该段程序的功能。在函数与函数之间,建设有两行以上的空行。Matrix4x4matrix=newMatrix4x4();doublecosAngle=Math.cos(angle);doublesinAngle=Math.sin(angle);matrix.setElement(1,1,cosAngle);matrix.setElement(1,2,sinAngle);matrix.setElement(2,1,-sinAngle);matrix.setElement(2,2,cosAngle);multiply(matrix);在类声明class{}中,public、protected、private节之间加上空行,除非这个类声明的规模很小。参见:文献[1]第86、87条C++程序书写规范6文献[4]“ClassFormat”章节7.空格空格的使用包含以下几种情况:(1)双目运算符前后加上空格,单目运算符前后不要加空格(2)C++保留字后必须加上空格(3)逗号后面必须加上空格(4)for语句中的分号后加空格a=(b+c)*d;//NOT:a=(b+c)*dwhile(true)//NOT:while(true)
本文标题:C++程序书写规范
链接地址:https://www.777doc.com/doc-7025967 .html