欢迎来到天天文库
浏览记录
ID:37446806
大小:360.50 KB
页数:32页
时间:2019-05-24
《C++编码规范_1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、系统软件部C++编码规范讨论稿目录前言4第1章文件结构41.1版权和版本的声明41.2头文件的结构51.3定义文件的结构61.4目录结构6第2章程序的版式72.1空行72.2代码行82.3代码行内的空格92.4对齐102.5长行拆分112.6修饰符的位置112.7注释11Doxygen基本语法12Doxygen使用中存在的问题14中文问题:中文注释在文档中是乱码14图形问题:无法绘制类图协作图等图形。14输出chm的问题:如何输出.chm文件14Doxygen无法为DLL中定义的类导出文档152
2、.8类的版式15第3章命名规则163.1共性规则163.2简单的Windows应用程序命名规则17第4章表达式和基本语句184.1运算符的优先级184.2复合表达式194.3if语句204.4循环语句的效率224.5for语句的循环控制变量234.6switch语句234.7goto语句24第5章常量24第6章函数设计256.1参数的规则256.2返回值的规则256.3函数内部实现的规则266.4其它建议27第7章内存管理277.1常见的内存错误及其对策27第8章其它编程要求28第9章VC工程的
3、要求299.1工程目录299.2工程设置29第10章附件2910.1主要变量2910.2VisualC++常用前缀2910.3Windows对象名称缩写3010.4VisualC++常用宏定义命名31C++编码规范前言本编码规范针对C/C++语言。制定本规范的目的:提高代码的可读性,使代码易于查看和维护;提高代码的健壮性,使代码更安全、可靠。本文档分别对C/C++程序的格式、注释、标识符命名、语句使用、函数、类、程序组织、公共变量等方面做出了要求。规范中蓝色标注为重点要求,粉色为示范,其余为参考
4、。本规范中蓝色标注要求开发人员必须要严格遵守,其余的规范开发人员应尽量遵守。各项目组在用C/C++语言或基于C/C++语言的开发工具开发项目时,要遵守本规范。第1章文件结构每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件以“.cpp”为后缀,不要采用其他
5、后缀。1.1版权和版本的声明版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有:(1)版权信息。(2)文件名称,标识符,摘要。(3)当前版本号,作者/修改者,完成日期。(4)版本历史信息。示例1-1版权和版本声明1./** 2.* COPYRIGHT NOTICE 3.* Copyright (c) 2009, 同方威视技术股份有限公司 (版权声明) 4.* All rights reserved. 5.* 6.* @file (本文件的文
6、件名eg:Test.h) 1.* @brief (本文件实现的功能的简述) 2.* 3.* (本文件实现的功能的详述) 4.* 5.* @version 1.1 (当前版本) 6.* @author (作者,eg:吉东旭) 7.* @date (文件创建日期,eg:2010年8月22日) 8.* 9.* 10.* 修订说明:升级版本,修改1.0版本中的Example方法的参数为char*11.*版本1.0作者:王强12.*13.*
7、/ 1.2头文件的结构头文件由三部分内容组成:(1)头文件开头处的版权和版本声明(参见示例1-1)。(2)预处理块。(3)函数和类结构声明等。l为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。通常用的预处理块是检查一个标识本头文件的宏,我们要求这个宏的名字为“__文件名_H__”。l用#include格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。l用#include“filename.h”格式来引用非标准库的头文件(编译
8、器将从用户的工作目录开始搜索)。l头文件中只存放“声明”而不存放“定义”在C++语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。我们要求将成员函数的定义与声明分开,不论该函数体有多么小。l不提倡使用全局变量,尽量不要在头文件中出现象externintvalue这类声明。l在C++头文件中尽量减少全局函数假设头文件名称为example.h,下面是头文件示例:示例1-2头文件的结构//版权和版本声明见示例1-1,此处省略。#
此文档下载收益归作者所有