收藏 分享(赏)

C++程序书写规范.doc

上传人:cjc2202537 文档编号:5241999 上传时间:2019-02-13 格式:DOC 页数:15 大小:160.50KB
下载 相关 举报
C++程序书写规范.doc_第1页
第1页 / 共15页
C++程序书写规范.doc_第2页
第2页 / 共15页
C++程序书写规范.doc_第3页
第3页 / 共15页
C++程序书写规范.doc_第4页
第4页 / 共15页
C++程序书写规范.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、C+程序书写规范万 健2009/8/8目录一. 前言 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. Astyle13五. 参考文献 14一. 前言在商品化软件开发中,非常重

2、视程序编码规范,不同的公司或组织有不同规范,比如:“GNU Coding Standards”、 “Google C+ Style Guide”等。C+程序编码规范(C+ Coding Standard )包含以下两个含义:1. C+程序设计规范2. C+程序书写规范程序设计规范牵涉程序开发过程中可靠性、可维护性、安全性的话题,而程序书写规范是程序员约定的通行书写格式。本文主要讨论的是 C+的程序书写格式。现在计算机专业教学过程中不重视程序书写格式规范化教学,一些教材中的程序书写格式五花八门,造成学生在大学四年中缺乏规范化的编码训练,直接影响学生毕业求职与工作。C+的程序书写规范最初缘自 K

3、/* x 和 y 为函数的形式参数 */if () ;随着 C 语言的发展,特别是 C+的出现,特别是微软公司的 Windows 程序设计的影响,程序设计风格发生的一系列的变化,出现的 GNU、Linux 、VC 等规范,也出现标识符的匈牙利命名法等规范,主要还是分为 Unix/Linux 和 Windows 两大流派,Java 的风格偏向于Unix/Linux。本文主要是综合网络上发布的资料,根据程序开发的通行做法,约定了 C+程序的书写规范。二. C+程序书写规范1. 头文件头文件必须包含#ifndef#endif 结构。#ifndef COM_COMPANY_MODULE_CLASSNA

4、ME_H#define COM_COMPANY_MODULE_CLASSNAME_H:#endif / COM_COMPANY_MODULE_CLASSNAME_H参见: 文献1第 40 条2. 语句一条语句占一行或多行,避免一行写多条语句,除非这些语句非常相关。参见: 文献2“One Statement Per Line”章节3. 程序注释 程序注释包含段注释和行注释两种,段注释单独一行或几行,主要说明下面一段程序完成什么功能,行注释用于解释某条语句的功能。注意注释书写的对齐。/ 该函数完成的功能void SampleFunction()/ 段注释 1 / 行注释 1 / 行注释 2/ 段注

5、释 2if ()/ 段注释 3/ 4. 缩进程序块缩进大小为 2 到 4 个空格之间,通常为 4 个空格。不用采用 TAB 控制符,而是采用空格符。如在 Visual Studio2005 中选择“工具- 选项-文本编辑器-C/C+-制表符- 插入空格” 、在 DEV C+中的 “Editor Options”取消“Use Tab Character”。参见: 文献1第 38 条 文献2“Indentation/Tabs/Space Policy”章节 文献 4“Spaces vs. Tabs”章节5. 程序块程序块的花括号位置有三种写法,推荐采用第一或第二种格式/ 现代 C/C+写法whil

6、e (!done) doSomething();done = moreToDo();/ 传统 C/C+写法while (!done) doSomething();done = moreToDo();/ GNU 写法while (!done) doSomething();done = moreToDo();参见: 文献1第 72 条 文献5“Formatting Your Source Code”章节6. 空行正如一篇文章中要有自然段一样,在程序中要适当使用空行来表示程序段落。在必要时,程序段落的开始要加上注释,说明该段程序的功能。在函数与函数之间,建设有两行以上的空行。Matrix4x4 ma

7、trix = new Matrix4x4();double cosAngle = Math.cos(angle);double sinAngle = 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 节之间加上空行,除非这个类声明的规模

8、很小。参见: 文献1第 86、87 条 文献4“Class Format”章节7. 空格空格的使用包含以下几种情况:(1) 双目运算符前后加上空格,单目运算符前后不要加空格(2) C+保留字后必须加上空格(3) 逗号后面必须加上空格(4) for 语句中的分号后加空格a = (b + c) * d; / NOT: a=(b+c)*dwhile (true) / NOT: while(true) .doSomething(a, b, c, d); / NOT: doSomething(a,b,c,d);for (i = 0; i Portfolio;Visual C+的 MFC 类库中,类名的第

9、一个字母以大写“C”开始,如“CWindow” 、“CFile”。3. 变量名,参数名,缩略语变量名、参数名、缩略语使用“lowerCamelCase” 。int fixedWidth = 10; void LoadXmlDocumnet(const char *docName); / 注意缩略语 XML 必须写成 Xml4. 函数名函数名有两种不同的风格: lowerCamelCase,为 Unix 程序设计和 Java 程序设计风格。如 loadXmlDocument() UpperCamelCase,为 Windows 程序设计风格。如 CreateWindow()5. 匈牙利命名法匈牙

10、利命名法(Hungarian notation)是变量名在上述取名规划的基础上,加上小写字母前缀用于表示数据类型,它的好处是在阅读程序时,看到一个变量名,不用去翻看前面的变量声明类型,直接就可以知道该变量的类型。对匈牙利命名法有不同的看法,很多观点认为此种命名法过于复杂,而且现代的开发工具在查看程序时,只要光标移动某个变量,可以自动显示这个变量的声量,匈牙利命名法是多余的。在 Windows 程序设计里,广泛使用匈牙利命名法(如 VC、VB、C+ Builder) ;在 Unix和 Java 程序设计中,匈牙利命令法使用得较少。匈牙利命名法常用的前缀: m_ 类的数据成员,如 m_nLengt

11、h g_ 全局变量,如 g_szConnection n 或 i 整型变量,如 nLength c 或 ch 字符型变量,如 cInput b 布尔型变量,如 bFound l 长整型变量,如 lCount f 单精度浮点型变量,如 fRadius d 双精度浮点型变量,如 dRadius u 无符号变量 sz 以0结束的字符串,如 szName p 指针变量,可以和其它类型前缀联合使用,如 pszPath r 引用变量,可以和其它类型前缀联合使用,如 rnStatus除此之外,还可以根据程序中不同的数据类型(包括自定义的数据类型) ,自行约定一些前缀,如: win 表示窗口类型变量,如 wi

12、nResult str 表示 STL 的 string 类型变量,如 strMessage dw 表示 Double Word 变量,如 dwFlag rect 表示矩形图形变量,rectRegion四. C/C+代码格式化工具SourceFormatX 和 astyle 是两个较好的 C/C+代码格式化工具,它们可以把现有的程序代码按一定的规范进行调整,使得风格更统一。1. SourceFormatXSourceFormatX 是国产的基于 Windows 的代码格式化工具,有较强的设定功能。能较好地处理缩进、运算符左右空格的添加,但不是缩进和空格添加都正确。2. Astyleastyle

13、是基于命令行的代码格式化工具,有多个操作系统版本,在 Windows 系统中必须在命令窗口中使用。Astyle 命令选项格式符合 GNU 的使用规范。Astyle 是开源软件,安装好以后,源程序放在astylesrc 目录下,这些源程序书写格式非常规范,也符合本文所推荐的格式,可以供程序书写参考。Astyle 的执行程序放在astylebin 目录下,在命令行上输入:astylebinastyle a.cpp即可把 a.cpp 的格式进行修正,修正后的代码还是在 a.cpp 中,修正前的代码放在 a.orig 文件中。键入astylebinastyle help可以看到使用帮助。Astyle

14、可以按不同的风格规范程序代码,主要是处理缩进,对运算符左右空格不作处理。五. 参考文献1 C+ Programming Style Guidelines. http:/geosoft.no/development/cppstyle.html2 C+ Coding Standard. http:/ Programming in C+, Rules and Recommendations. http:/www.doc.ic.ac.uk/lab/cplus/c+.rules/4 Google C+ Style Guide. http:/google- GNU Coding Standards. http:/www.gnu.org/prep/standards/standards.html.6 Hungarian notation. http:/en.wikipedia.org/wiki/Hungarian_notation7 C+ Programming Style (C+编码规范 ). http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 规章制度

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报