1 项目风格1.1 项目取名在VC之中,项目名为最后可执行文件名,所以项目名最好以最终的可执行文件名一致。 1.2 项目目录设置为保证VC项目的备份方便、快捷,将所有该项目有关的文件全部放到统一的目录之下,为每个项目在该目录之下建立一个目录,项目之间的公共部分建立在public目录之下,项目所需要的基础库根据所需要的基础库数目分别建立不同的目录,项目相关的测试程序都统一放在TEST目录之下。下表显示了一个软件工程PSS系统的目录设置表: PSS系统有两个模块PSS_mod1和PSS_mod2,两个模块有一部分共用代码,在工程开发过程之中编写了三个测试程序PSS_TEST1、 PSS_TEST2、PSS_TEST3,PSS系统开发过程之中用到了第三方公用模块Third_Mod,则该系统的目录设置如下:
1.3 集成环境内的项目目录设置每个项目在VC编成编辑环境的设置都采用相对路径的设置,不可采用绝对路径,保证其备份到光盘设备后或恢复到硬盘时, 不需要再过多的设置就可直接编译。同样在用#include 语句时不要太多的目录搜索,如下所示: #include “../../../somehead.h” 改成: #include "headfile.h" 或#incldue "dir/headfile.h" 并注意#include "headfile.h"与#include <headfile.h>的区别 然后在项目设置(Project Setting)中加入该头文件的所在目录。 1.4 项目修改记录追踪每一个VC项目必须存在Changes.Log,用以记载项目产生以来所有的改动,其格式必须如下: 日期: 2000/4/28 修改人: ** 修改主题: 相关修改文件: hello.cpp 修改内容详细描述: 另外可充分利用Visual C++自动生成的Readme.txt文件来记载项目相关的信息。
2 文件风格2.1 文件生成文件名的语义应该能概括表达本文件所包含函数主要实现什么功能。文件名用小写英文字母表达,严禁使用中文;对于几个单词组合表达的文件名,单词之间用_符号分开。 文件名的后缀定义: a. VC自动生成的源文件和头文件后缀分别为:*.cpp和.h。 对于规范的VC派生类,尽量用Class Wizard生成文件格式,避免用手工制作头文件/实现文件。
每一次类都至少有一个//Implementation,在不同的位置MFC做不同的处理,在编写代码时最好 与MFC这种风格一致。 2.2 文件头部注释文件头部注释主要是表明该文件的一些信息,其格式如下: /////////////////////////////////////////////////////////////////// 2.3 文件规格化功能键 源文件在编写完毕时,Visual C++提供Alt+F8功能键,进行文件规格化,常使用该按键可使得文件保持规格化(注,Alt+F8功能键对连续两个CASE语句则会发生处理错误,不能规格化)。
3 函数风格3.1 函数名的约定。函数名的语义应该能反映函数实现的功能。 对于api函数的命名规则为: 对于DI函数的命名规则: 3.2 函数注释ClassWizard自动生成的函数,如消息响应函数,则不必太多的注释和解释; 对于自行编写的函数,若是系统关键函数,则须在函数实现部分的上方标明该函数的信息,格式如下: //====================================================================== 3.3 代码缩进每一个嵌套的函数块,使用一个TAB缩进(可以设定为3个空格),大括号必须放在条件语句的下一行,单独成一行,便于匹对反大括号应该在单独的一行,在大多数情况下反扩号应有注释内容。举例如下: if(condition1) 或者 if(condition1){ 3 .4 其它规范1、 每个源文件包括的函数体不应该多于20个,每个函数体不应该超过120行原代码。
4 变量风格变量尽量采用匈牙利命名法,同时结合VC的原则;一般情况下,变量的取名方式为: <scope_> + <prefix_> + <qualifier>。 特殊的类型命名,前缀表示:
注:类名前缀改为Lm,对于非全局的类最好有语义表示其所属模块。类的实例命名与类名大致相同,只是类名语义表示类的通用含义,而类名表示此实例的具体语义。如类名LmSketPoint表示草图点的类定义,而它的两个实例 _StartPoint,_EndPoint分别代表起点和终点的语义。类的实例命名带上前缀_。 范围前缀:
注:编程时尽量少用全程变量,对于全程变量还应在类型前缀后加上如下关键字: 特征模块 : Fea
类型前缀 1、:
常用Windows对象名称缩写:这些名称缩写很多情况下可直接使用,直接作变量的名称。 Windows 对象 例子变量 HWND hWnd; HDLG hDlg; HDC hDC; HGDIOBJ hGDIOBJ Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=571377 |
|
来自: firedragon > 《编程积累》