VC编码规规范.docx

上传人:b****4 文档编号:27505403 上传时间:2023-07-02 格式:DOCX 页数:10 大小:19.22KB
下载 相关 举报
VC编码规规范.docx_第1页
第1页 / 共10页
VC编码规规范.docx_第2页
第2页 / 共10页
VC编码规规范.docx_第3页
第3页 / 共10页
VC编码规规范.docx_第4页
第4页 / 共10页
VC编码规规范.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

VC编码规规范.docx

《VC编码规规范.docx》由会员分享,可在线阅读,更多相关《VC编码规规范.docx(10页珍藏版)》请在冰豆网上搜索。

VC编码规规范.docx

VC编码规规范

1   项目风格

   1.1   项目取名

     在VC之中,项目名为最后可执行文件名,所以项目名最好以最终的可执行文件名一致。

   1.2   项目目录设置

     为保证VC项目的备份方便、快捷,将所有该项目有关的文件全部放到统一的目录之下,为每个项目在该目录之下建立一个目录,项目之间的公共部分建立在public目录之下,项目所需要的基础库根据所需要的基础库数目分别建立不同的目录,项目相关的测试程序都统一放在TEST目录之下。

下表显示了一个软件工程PSS系统的目录设置表:

      PSS系统有两个模块PSS_mod1和PSS_mod2,两个模块有一部分共用代码,在工程开发过程之中编写了三个测试程序PSS_TEST1、      PSS_TEST2、PSS_TEST3,PSS系统开发过程之中用到了第三方公用模块Third_Mod,则该系统的目录设置如下:

 

 一级目录

二级目录

三级目录

备注

WORK

PSS_mod1

Debug

VC集成环境生成的调试版本目录

Release

VC集成环境生成的发行版本目录

Res

VC集成环境生成的资源文件目录

Include

所属mod1的头文件

Source

所属mod2的头文件

PSS_mod2

Debug

VC集成环境生成的调试版本目录

Release

VC集成环境生成的发行版本目录

Res

VC集成环境生成的资源文件目录

Include

所属mod1的头文件

Source

所属mod2的头文件

PUBLIC

Include

Mod1和mod2公用的头文件

Source

Mod1和mod2公用的源代码文件

Lib

Mod1和mod2公用的库文件

TEST

PSS_Test1

测试项目一

PSS_Test2

测试项目三

PSS_Test3

测试项目三

Third_Mod

第三方公用模块

 

   1.3   集成环境内的项目目录设置

       每个项目在VC编成编辑环境的设置都采用相对路径的设置,不可采用绝对路径,保证其备份到光盘设备后或恢复到硬盘时, 不需要再过多的设置就可直接编译。

同样在用#include语句时不要太多的目录搜索,如下所示:

            #include“../../../somehead.h”

            改成:

            #include"headfile.h"

            或#incldue"dir/headfile.h"

            并注意#include"headfile.h"与#include的区别

            然后在项目设置(ProjectSetting)中加入该头文件的所在目录。

     

   1.4   项目修改记录追踪

       每一个VC项目必须存在Changes.Log,用以记载项目产生以来所有的改动,其格式必须如下:

日期:

2000/4/28

修改人:

**

修改主题:

 

相关修改文件:

hello.cpp

修改内容详细描述:

另外可充分利用VisualC++自动生成的Readme.txt文件来记载项目相关的信息。

 

 

2    文件风格

    2.1   文件生成

      文件名的语义应该能概括表达本文件所包含函数主要实现什么功能。

文件名用小写英文字母表达,严禁使用中文;对于几个单词组合表达的文件名,单词之间用_符号分开。

文件名的后缀定义:

          a.VC自动生成的源文件和头文件后缀分别为:

*.cpp和.h。

           b.其他源文件和头文件后缀分别为:

*.cxx和*.hxx。

       对于规范的VC派生类,尽量用ClassWizard生成文件格式,避免用手工制作头文件/实现文件。

//Constructors//构造

 

//Attributes//属性,品质,特征,加于,归结

 

//Operations//运转,操作,实施,作用,业务,工作,手术,军事行动

 

//Overridables//可重载的

 

//Implementation//实现

       每一次类都至少有一个//Implementation,在不同的位置MFC做不同的处理,在编写代码时最好

       与MFC这种风格一致。

    2.2   文件头部注释

        文件头部注释主要是表明该文件的一些信息,其格式如下:

///////////////////////////////////////////////////////////////////

//文件名                       :

     mange_fun.cxx

//版本                           :

                           

//目的及主要功           :

     系统参数的设定

//创建日期                   :

     1999.09.14

//修改日期                   :

                    

//作者                           :

              ***

//修改者                       :

                        

////////////////////////////////////////////////////////////////

    2.3   文件规格化功能键

     源文件在编写完毕时,VisualC++提供Alt+F8功能键,进行文件规格化,常使用该按键可使得文件保持规格化(注,Alt+F8功能键对连续两个CASE语句则会发生处理错误,不能规格化)。

 

 

3     函数风格

  3.1  函数名的约定。

函数名的语义应该能反映函数实现的功能。

对于api函数的命名规则为:

    a.函数一律以api_lm_开头;lm表示此函数为lonicera-mda子系统的函数,pdm模块的函数名以api_lp_开头。

    b.后面的命名以函数语义为基准,如创建一点的函数完整的函数名为api_lm_ceate_point()。

对于DI函数的命名规则:

    a.函数名=lm_+(函数语义)。

    b.对于几个单词组合表达的函数名,各单词之间以_符号分开。

 3.2   函数注释

    ClassWizard自动生成的函数,如消息响应函数,则不必太多的注释和解释;

    对于自行编写的函数,若是系统关键函数,则须在函数实现部分的上方标明该函数的信息,格式如下:

//======================================================================

//函数名:

InsureHasOutputInfo

//功能描述:

确保有适当的输出信息

//输入参数:

nProductID:

相应的产品ID

//输出参数:

void

//创建日期:

00-2-21

//修改日期:

00-2-21

//作    者:

***

//附加说明:

//======================================================================

 3.3   代码缩进

    每一个嵌套的函数块,使用一个TAB缩进(可以设定为3个空格),大括号必须放在条件语句的下一行,单独成一行,便于匹对反大括号应该在单独的一行,在大多数情况下反扩号应有注释内容。

举例如下:

if(condition1)

{

   while(condition2)

   {

      …..

      …..

   }//endwhile(condition2)

}//endif(condition1)

或者

if(condition1){

   while(condition2){

      ….

      ….

   }//endwhile(condition2)

}//endif(conditionl)

 3.4  其它规范

1、每个源文件包括的函数体不应该多于20个,每个函数体不应该超过120行原代码。

2、函数的输入参数不多于5个,输出参数不多于5个。

3、对于超过3句以上的语句反复调用,应封装为函数调用。

4、尽量避免三层以上的嵌套循环;尽量减少程序的if语句;少用诸如I*=b、A=C+D*B++等语义难懂的语句。

5、充分利用C++的思想,真正意义上地用C++语言编程;对类扩充成员函数。

 

4      变量风格

       变量尽量采用匈牙利命名法,同时结合VC的原则;一般情况下,变量的取名方式为:

++

范围前缀_,类型前缀_,限定词。

特殊的类型命名,前缀表示:

类、接口

前缀

类型

例子

备注

Lm

Class   

LmObject

表示类型本身

不与范围前缀结合使用

I

Interface接口

IUnknown

 

注:

类名前缀改为Lm,对于非全局的类最好有语义表示其所属模块。

类的实例命名与类名大致相同,只是类名语义表示类的通用含义,而类名表示此实例的具体语义。

如类名LmSketPoint表示草图点的类定义,而它的两个实例_StartPoint,_EndPoint分别代表起点和终点的语义。

类的实例命名带上前缀_。

       特殊约定:

       a.MouseTool的派生类的前缀为_Mt.

       b.对话框类的前缀为CDlg.

       c.橡皮条类的前缀为_Rb.

范围前缀:

前缀

类型

例子

备注

g_

全局作用域

g_Servers

 

m_

成员变量

m_pDoc,

l_

局部作用域

l_strName

少用

 

 

     注:

编程时尽量少用全程变量,对于全程变量还应在类型前缀后加上如下关键字:

          特征模块  :

   Fea

          草图模块  :

   Sket

          装配模块  :

   Asm

          工程图模块:

   Lay

          曲面模块  :

   Surf

          界面模块  :

   Ui

 

类型前缀1、:

常用的一般数据类型的前缀表示(这只是一部分)

前缀

类型

内存规格描述

例子

ch

char

8-bitcharacter

chGrade

ch

TCHAR

16-bitcharacterif_UNICODEisdefined

chName

b

BOOL

Booleanvalue

bEnabled

n

int

Integer(sizedependentonoperatingsystem)

nLength

n

UINT

Unsignedvalue(sizedependentonoperatingsystem)

nLength

w

WORD

16-bitunsignedvalue

wPos

l

LONG

32-bitsignedinteger

lOffset

dw

DWORD

32-bitunsignedinteger

dwRange

p

*

Ambientmemorymodelpointer

pDoc

lp

FAR*

Farpointer

lpDoc

lpsz

LPSTR

32-bitpointertocharacterstring

lpszName

lpsz

LPCSTR

32-bitpointertoconstantcharacterstring

lpszName

lpsz

LPCTSTR

32-bitpointertoconstantcharacterstringif_UNICODEisdefined

lpszName

h

handle

HandletoWindowsobject

hWnd

lpfn

(*fn)()

callbackFarpointertoCALLBACKfunction

lpfnAbort

常用Windows对象名称缩写:

这些名称缩写很多情况下可直接使用,直接作变量的名称。

Windows对象 例子变量 

HWNDhWnd;

HDLG hDlg;

HDC hDC;

HGDIOBJhGDIOBJ

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1