C++代码规范之命名

一、命名的两个基本原则
1、含义清晰,不易混淆;
2、不和其它模块、系统API的命名空间相冲突。
 
二、命名通则
1、在所有命名中,都应使用标准的英文单词或缩写;不得使用拼音或拼音缩写,除非该名字描述的是文
    特有的内容(如半角、全角、声母、韵母等);除非必要,不要用数字或较奇怪的字符来定义标识符。
2、所有命名都应遵循达意原则,即名称应含义清晰、明确。
3、所有命名都不易过长,应控制在规定的最大长度以内。
4、所有命名都应尽量使用全称。
5、命名中若使用特殊约定或缩写,则要有注释说明。 
6、自己特有的命名风格,要自始至终保持一致,不可来回变化。
   说明:个人的命名风格,在符合所在项目组或产品组的命名规则的前提下,才可使用。(即命名规则中没有规定到的地方才可有个人命名风格)。
7、在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突。
8、对于变量命名,禁止取单个字符(如i、j、k…),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。
   说明:变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。
     例:下面所示的局部变量名的定义方法可以借鉴。
        int liv_Width
     其变量名解释如下:
         l      局部变量(Local)  (其它:g    全局变量(Global)…)
         i      数据类型(Interger)
         v      变量(Variable)   (其它:c    常量(Const)…)
         Width  变量含义
     这样可以防止局部变量与全局变量重名。
9、命名规范必须与所使用的系统风格保持一致,并在同一项目中统一,比如采用UNIX的全小写加下划线的风格或大小写混排的方式,不要使用大小写与下划线混排的             方式,用作特殊标识如标识成员变量或全局变量的m_和g_,其后加上大小写混排的方式是允许的。
    例: Add_User不允许,add_user、AddUser、m_AddUser允许。
10、用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。
    说明:下面是一些在软件中常用的反义词组。
          add / remove      begin / end      create / destroy        insert / delete
          first / last      get / release    increment / decrement   put / get
          add / delete      lock / unlock    open / close            min / max
          old / new         start / stop     next / previous         source / target
          show / hide       send / receive   up / down    cut / paste
       例:
        int  min_sum;
        int  max_sum;
        int  add_user( BYTE *user_name );
        int  delete_user( BYTE *user_name );
11、除了编译开关/头文件等特殊应用,应避免使用_EXAMPLE_TEST_之类以下划线开始和结尾的定义。
12、程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。
 
三、具体规范
1、工程名
     不强制统一。
2、文件名:
     基于工程名,开头3个字母应表明与哪一个工程相关。
     后面的字母应能够区别不同的功能。
     不区分大小写。
     长度不限于8.3格式,建议不多于30个字符。
     若文件用于定义和实现类,建议文件名与类名保持一致。
3、函数名:
     参照 Windows API 的命名规范。
     推荐使用动宾结构。函数名应清晰反映函数的功能、用途。
     函数名最长不得超过30个字符。
     函数名第一个字母必须大写。
     全局函数必须以小写前缀"g"开头。全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。类的成员函数应当只使用“动词”,被省略掉的名词就是对象    本身。
   例:
                 DrawBox(); // 全局函数
                 box->Draw(); // 类的成员函数
4、变量名:
     原则上,变量名的命名遵从匈牙利记法。即:前缀 + 类型 + 变量名
     变量名最长不得超过20个字符。
     变量的名字应当使用“名词”或者“形容词+名词”。
   例:
              float value;
              float oldValue;
      1)格式:[m_|s_|g_] type [class name|struct name] variable name
          2)解释:
               m_ : 类的成员变量
              ms_:类的静态成员变量
              s_ :静态全局变量
              g_ :普通全局变量
              类型缩写(type)
              char, TCHAR: ch
              char[],TCHAR[]: sz
              bool, BOOL: b
              int, __int16,__int32,__int64: n
              long: l
              double: d
              float: ft
              BYTE: by
              WORD: w
              DWORD: dw
              unsigned: u
              function: fn
              p :pointer
              lp :pointer
5、类名:
       必须以大写"K"开头,后面字母反映具体含义,以清晰表达类的用途和功能为原则。
       接口必须以大写"I"开头,代表 Interface 。
       当名称由多个单词构成时,每一个单词的第一个字母必须大写。
6、结构名、宏名、枚举名、联合名:
       全部大写。
       枚举名加小写前缀"enum"。
       例:
                     typedef enum _KFILE_OPEN_MODE
                    {
                         enumOPEN_READONLY = 0;
                         enumOPEN_READWRITE = 1;
                         enumCREATE_ALWAY = 3 ;
                     } KFILE_OPEN_MODE;
         宏名加小写前缀"def"。
         例:
                      #define defMAXNUMBER 100
       结构名加小写前缀"tag",之后必须以大写"K"开头。
         例:
                       typedef struct tagKPOINT
                       {
                             int x;
                             int y;
                        } KPOINT;
          联合名加小写前缀"uni"。
          例:
                      typedef union _VARIANT
                     {
                          char unichVal;
                          int uninVal;
                          long unilVal;
                          float uniftVal;
                     } VARIANT;
   说明:对接口部分的标识符应该有更严格限制,防止冲突。如可规定接口部分的变量与常量之前加上  “模块”标识等。
   说明:应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。
   说明:较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写。
         一些单词有大家公认的缩写。
          例:temp 可缩写为 tmp
               flag 可缩写为 flg
               statistic 可缩写为 stat
               increment 可缩写为 inc
               message 可缩写为 msg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.NET C#代码规范是一组规则和标准,用于指导开发人员在编C#代码时如何组织、命名和编代码,以确保代码的可读性、可维护性和一致性。 在.NET C#代码规范中,一般会包含以下方面的内容: 1. 命名规则:指定了不同类型的命名规范,包括类、方法、变量、常量等的命名规则。例如,类名使用大驼峰命名法(PascalCase),变量和方法名使用小驼峰命名法(camelCase)。 2. 代码结构和布局:指定了代码中的缩进、换行和空白字符的使用规则,以提高代码的可读性。例如,使用适当的缩进和空行来组织代码块。 3. 注释规范:指定了如何编注释,以提供清晰的解释和文档。例如,使用XML注释格式来描述方法、参数和返回值的含义。 4. 错误处理和异常规范:指定了如何处理错误和异常情况,以确保代码的健壮性和可维护性。例如,使用try-catch块来捕获和处理异常。 5. 代码复用和模块化规范:指定了如何重用代码和模块,以提高代码的可维护性和可扩展性。例如,使用类库和模块化的设计来封装可重用的功能。 6. 性能和优化规范:指定了如何编高性能的代码,并提供了一些优化建议。例如,避免不必要的内存分配和循环嵌套,使用合适的数据结构和算法等。 7. 安全规范:指定了如何编安全的代码,以防止潜在的安全漏洞。例如,避免直接拼接SQL语句,而应使用参数化查询来防止SQL注入攻击。 通过遵守.NET C#代码规范,开发人员可以编出一致、可读性强、易于维护和面向对象的代码,从而提高代码质量和开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值