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 “http://www.cnblogs.com/../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。
           b. 其他源文件和头文件后缀分别为:*.cxx和*.hxx。

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

// Constructors //构造 // Attributes           //属性, 品质, 特征, 加于, 归结 // Operations           //运转, 操作, 实施, 作用, 业务, 工作, 手术, 军事行动 // Overridables //可重载的 // Implementation       //实现       每一次类都至少有一个//Implementation,在不同的位置MFC做不同的处理,在编写代码时最好

与MFC这种风格一致。

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

///////////////////////////////////////////////////////////////////
// 文件名                       :      mange_fun.cxx
// 版本                           :                           
// 目的及主要功            :     系统参数的设定
// 创建日期                   :     1999.09.14
// 修改日期                   :                    
// 作者                           :              ***
// 修改者                       :                        
////////////////////////////////////////////////////////////////

2.3    文件规格化功能键
     源文件在编写完毕时,Visual C++提供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)
   {
      …..
      …..
   }//end while(condition2)
}//end if (condition1)

或者

if(condition1){
   while(condition2){
      ….
      ….
   }//end while(condition2)
}//end if(conditionl)

VC编码规范(转)的更多相关文章

  1. iOS开发 编码规范

    转至   http://www.cnblogs.com/celestial/archive/2012/06/30/2571417.html 编码规范 一.文档结构管理 1.建立Libraries文件夹 ...

  2. Android的编码规范

    一.Android编码规范 1.学会使用string.xml文件 在我看来,当一个文本信息出现的次数大于一次的时候就必须要使用string.xml 比如一个保存按钮 , 不规范写法: <Butt ...

  3. PHP 高级编程(1/5) - 编码规范及文档编写

    PHP 高级程序设计学习笔记20140612 软件开发中的一个重要环节就是文档编写.他可以帮助未来的程序维护人员和使用者理解你在开发时的思路.也便于日后重新查看代码时不至于无从下手.文档还有一个重要的 ...

  4. 【原】JAVA SE编码规范

    /* * 编码规范: * 1.所有的命名遵循"见名知意"的原则 * 2.所有的命名不允许使用汉字或拼音 * 3.Java的工程命名建议使用小写,比如:oa.crm.cms... * ...

  5. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  6. PHP编码规范PSR-2

    .note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...

  7. Objective-C开发编码规范【转载】

    概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guide ...

  8. 前端编码规范之CSS

    "字是门面书是屋",我们不会去手写代码,但是敲出来的代码要好看.有条理,这还必须得有一点约束~ 团队开发中,每个人的编码风格都不尽相同,有时候可能存在很大的差异,为了便于压缩组件对 ...

  9. 前端编码规范之JavaScript

    上次浅谈了下关于CSS的编码规范,大部分童鞋持赞同意见,仍存在一些童鞋不太理解这些规范的意义. 如果是个人或者小作坊开发,其实这些所谓的编码规范也没啥意思,因为大家写好的代码直接就给扔到网上去了,很少 ...

随机推荐

  1. pytorch中torch.unsqueeze()函数与np.expand_dims()

    numpy.expand_dims(a, axis) Expand the shape of an array. Insert a new axis that will appear at the a ...

  2. 【Luogu】P2530化工厂装箱员(DP)

    题目链接 不知道做出这道题是我能力的一个提升还是能力的回归. DP.设f[i][j][k][l]是已经取了i个产品,现在手里还拿着j件A,k件B,l件C,最小的操作数. 然后状转方程乱搞啊 #incl ...

  3. C++ 中头文件(.h)和源文件(.cc)的写法简述

    用C++编写比较大型的项目时,文件的分割管理确实确实是非常必要的 .下面就非常简洁明了地谈谈头文件(.h)和源文件(.cc)应该怎么写. 头文件(.h):写类的声明(包括类里面的成员和方法的声明).函 ...

  4. Spring Boot SpringSecurity5 身份验证

    对于没有访问权限的用户需要转到登录表单页面.要实现访问控制的方法多种多样,可以通过Aop.拦截器实现,也可以通过框架实现(如:Apache Shiro.Spring Security). pom.xm ...

  5. 标准C程序设计七---07

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  6. H5 折线图插件

    一.可以使用Highcharts,参考网址:https://api.hcharts.cn/highcharts: 二.可以使用Echarts,参考网址:http://echarts.baidu.com ...

  7. Delphi中Indy 10的安装和老版本的卸载

    http://www.cnblogs.com/railgunman/archive/2010/08/31/1814112.html Indy 10的安装和老版本的卸载 Indy 10下载地址: htt ...

  8. codeforces 1051 F

    多源点最短路. 但是有限制,m - n <= 20,边数 - 点数 <= 20, 所以这个图非常的稀疏. 任意提取出一个生成树出来,LCA处理任意两点最短路. 然后再去遍历那些多余出来的点 ...

  9. 什么是 Linux

    什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络 ...

  10. hzwer与逆序对

    codevs——4163 hzwer与逆序对 貌似这个题和上个题是一样的((⊙o⊙)…)  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解       题目 ...