doom编程规范

来源:互联网 发布:电脑店铺收银软件 编辑:程序博客网 时间:2024/06/12 15:10

认为一个tab为4个空格。

        if ( x ) {

         }  if这样写,前后都有空格

         if ( x ) {

          } else {

          } //代码尽量紧凑

          x = ( y * 0.5f ) ;          代替:        x = (y * 0.5f) ;

          float f = 0.5f ; 代替 float f = 0.5 ;

          float f = 1.0f ; 代替 float f = 1.f ;

           函数命名首字母大写:

           void Function ( void ) ;

           在多单词的函数命名时,每个单词的首字母大写:

           void ThisFunctionDoesSomething ( void ) ;

            函数的标准头文件如下:

            /*

             ========================

               FunctionName

                           Descrption

             ========================

             */

              变量名一小写字母开始:

               float x ;

               在多个单词命名变量名时,第一个单词的起始字母是小写,后面的每个单词的起始字母大写:

               float maxDistanceFromPlane ;

               typedef 类型 采用变量命名的规则,但是以_t结束:

                typedef int fileHandle_t ;

                结构类型采用和变量命名的规则,且以_t结束:

                struct renderEntity_t ;

                枚举类型采用变量命名规则,且以_t结束。每个枚举成员都用大写字母,多个单词用_隔开

                enum contact_t {

    CONTACT_NONE,

    CONTACT_EDGE,

                            CONTACT_MODELVERTEX,

                            CONTACT_TRMVERTEX

                  } ;

                  递归函数命名以_r结尾:

                  void WalkBSP_r ( int node ) ;

                  #define 的所有的都用大写字母,多个单词用_分隔开:

                   #define SIDE_FRONT                      0

                   尽量使用const:

                    const int *p ; //pointer to const int 

    int * const p ; //const pointer to int

                    const int * const p ; //const pointer to const int

                     不使用:

                     int const *p ;

                     类:

                     类的标准头文件如下:

                     /*

     ===============================================

                                    Description

                     ===============================================

                     */

                      类名以“id"开头,并且后面的单词首字母大写(用id开头的原因是他们是id团队):

                     class idVec3 ;

     类名规则与变量命名规则一样:

                     class idVec3 {

       float x ;

                               float y ;

             flaotz ;

                      } ;

      类成员函数与函数命名规则一样:

                     class idVec3 {

float Length ( void ) const ;

               } ;

     类的成员变量和方法要使列对齐。变量类型和方法类型放在第一列,变量名字和方法名字房子第二列:

                     class idVect3 {

float  x ;

float  y ;

float z ;

float       Length ( void ) const ;

  const  float  *ToFlaotPtr ( void ) const ;

                      } 

        指针的*放在第一列的原因是为了可读性,把它作为类型的一部分。

      对类中的变量和方法排序如下:

                     1. 友员类的列表

     2. Public 变量

     3. public 方法

     4. protected 变量

     5. protected 方法

     6. 私有变量

      7.       私有变法

                       上面使得public接口能够很容易地在类的开头找到。

如果类方法没有修改任何的类变量,则将其定义为const.

避免使用 const_cast。当对象需要修改时,但是只能获取到const的版本,创建一个函数,清楚的给这个对象一个可编辑版本。

返回const 对象,除非改变了它的对象的状态。

                        .

                        .

                       .