预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共64页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

软件设计原则编程规范 (仅供内部使用) 拟制: 审核: 审核: 批准: 修订记录 前言 为了提高源程序的质量和可维护性,最终提高公司软件产品生产力,我们有必要对公司软件产品的源程序的编写风格作出统一的规范约束。 本规范的内容包括:排版、注释、变量和结构、函数、宏等。 本规范的示例以C和C++语言为背景。 考虑到MicrosoftVC++(以下简称VC)和BorlandC++builder(以下简称BC)编程习惯略有不同,当涉及到此项内容时,在本规范中将分别描述。 在本文中将使用以下关键词: 规则:编程时强制必须遵守的原则。 建议:编程时必须加以考虑的原则。 示例:对此规则或建议从正、反两个方面给出例子。 1文件结构 每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。 C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。 1.1版权和版本的声明 版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有: (1)版权信息。 (2)文件名称,标识符,摘要。 (3)当前版本号,作者/修改者,完成日期。 (4)版本历史信息。 /* *Copyright(c)2005,保定市天河电子产品开发部 *Allrightsreserved. * *文件名称:filename.h *文件标识:见配置管理计划书 *摘要:简要描述本文件的内容 * *当前版本:1.1 *作者:输入作者(或修改者)名字 *完成日期:2005年7月20日 * *取代版本:1.0 *原作者:输入原作者(或修改者)名字 *完成日期:2005年5月10日 */示例1-1版权和版本的声明 1.2头文件的结构 头文件由三部分内容组成: (1)头文件开头处的版权和版本声明(参见示例1-1)。 (2)预处理块。 (3)函数和类结构声明等。 假设头文件名称为myqueue.h,头文件的结构参见示例1-2。 【规则1-2-1】为了防止头文件被重复引用,必须用ifndef/define/endif结构产生预处理块。 【规则1-2-2】用#include<filename.h>格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 【规则1-2-3】用#include“filename.h”格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。 【建议1-2-1】头文件中只存放“声明”而不存放“实现”在C++语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将成员函数的定义与声明分开,不论该函数体有多么小。 【建议1-2-2】全局变量要慎用,尽量不要在头文件中出现像externintvalue这类声明。 //版权和版本声明见示例1-1,此处省略。 #ifndefMYFILE_H//防止myFile.h被重复引用 #defineMYFILE_H #include<stdio.h>//引用标准库的头文件 . #include“MyHeader.h”//引用非标准库的头文件 voidFunction1(.);//全局函数声明 classCBox//类结构声明 { }; #endif示例1-2C++/C头文件的结构 1.3定义文件的结构 定义文件有三部分内容: (1)定义文件开头处的版权和版本声明(参见示例1-1)。 (2)对一些头文件的引用。 (3)程序的实现体(包括数据和代码)。 假设定义文件的名称为myqueue.cpp,定义文件的结构参见示例1-3。 //版权和版本声明见示例1-1,此处省略。 #include“myqueue.h”//引用头文件 . //全局函数的实现体 voidAdd(.) { } //类成员函数的实现体 voidCBox::Draw() { }示例1-3C++/C定义文件的结构 1.4目录结构 如果一个软件的头文件数目比较多(比如已超过十个),强烈建议将头文件和定义文件分别保存于不同的目录,以便于维护。一般把头文件保存于include目录,把定义文件保存于src目录(可以是多级目录)。 如果某些头文件是私有的,它不会被其他用户的程序直接引用,则没有必要公开其“声明”。为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。 2程序的排版 2.1空行 【规则2-1-1】在每个类声明之后、每个函数定义结束之后都要加空行。参见示例2-1(a) 【规则2-1-2】