C语言命名规则

命名规则具有一定随意性, 但相比按个人喜好命名, 一致性更重要, 所以无论你认为它们是否重要, 规则总归是规则.

  1. 通用命名规则:

    尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要. 不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词.

    int price_count_reader;    // 无缩写
    int num_errors;            // "num" 是一个常见的写法
    int num_dns_connections;   // 人人都知道 "DNS" 是什么
    
    int n;                     // 毫无意义.
    int nerr;                  // 含糊不清的缩写.
    int n_comp_conns;          // 含糊不清的缩写.
    int wgc_connections;       // 只有贵团队知道是什么意思.
    int pc_reader;             // "pc" 有太多可能的解释了.
    int cstmr_id;              // 删减了若干字母.
    
  2. 文件命名规则:

    文件名要全部小写, 可以包含下划线 ( _ ) 或连字符 ( - ), 依照项目的约定. 如果没有约定, 那么 “_” 更好.

    可以接受的文件命名示例:

    my_useful_class.cc
    my-useful-class.cc
    myusefulclass.cc
    
  3. 类型命名规则:

    类型名称的每个单词首字母均大写, 不包含下划线: MyExcitingClass, MyExcitingEnum.

    所有类型命名 —— 类, 结构体, 类型定义 (typedef), 枚举, 类型模板参数 —— 均使用相同约定,即以大写字母开始, 每个单词首字母均大写, 不包含下划线.

    例如:

    // 类
    class UrlTable { ...
    class UrlTableTester { ...
    //结构体
    struct UrlTableProperties { ...
    //枚举
    enum UrlTableErrors { ...
    
  4. 变量命名规则:

    变量 (包括函数参数) 和数据成员名一律小写, 单词之间用下划线连接.此外,类的成员变量以下划线结尾, 但结构体的成员变量就不用。

    普通变量命名:

    举例:

    string table_name;  // 好 - 用下划线.
    string tablename;   // 好 - 全小写.
    
    string tableName;  // 差 - 混合大小写
    

    类数据成员:
    举例:

    不管是静态的还是非静态的, 类数据成员都可以和普通变量一样, 但要接下划线.

    class TableInfo {
      ...
     private:
      string table_name_;  // 好 - 后加下划线.
      string tablename_;   // 好.
    };
    

    结构体变量:

    不管是静态的还是非静态的, 结构体数据成员都可以和普通变量一样, 不用像类那样接下划线.

    struct UrlTableProperties {
      string name;
      int num_entries;
    };
    
  5. 函数命名规则:
    **常规函数使用大小写混合。取值和设值函数则要求与变量名匹配。MyExcitingFunction(), MyExcitingMethod(), my_exciting_member_variable(), set_my_exciting_member_variable().

    一般来说, 函数名的每个单词首字母大写 (即 “驼峰变量名” 或 “帕斯卡变量名”), 没有下划线. 对于首字母缩写的单词, 更倾向于将它们视作一个单词进行首字母大写(例如, 写作 StartRpc() 而非 StartRPC()).

    例如:

    AddTableEntry()
    DeleteUrl()
    OpenFileOrDie()
    
  6. 常量命名规则:

    声明为const 的变量, 或在程序运行期间其值始终保持不变的, 命名时以 “k” 开头, 大小写混合.

    例如:

    const int kDaysInAWeek = 7;
    
  7. 宏命名规则:

    通常不应该使用宏. 如果不得不用,建议采用全大写字母,单词之间加下划线 ’ _ ’ 的命名方式。

    例如:

    #define ROUND(x) ...
    #define PI_ROUNDED 3.0
    

    建议:常量建议用const定义代替宏

    例如:

    const float PI_ROUNDED = 3.0
    
  8. 枚举命名规则:
    枚举的命名应当和 常量 一致: kEnumName 或是 ENUM_NAME.

    例如:

    //常量的命名方式
    enum UrlTableErrors {
        kOK = 0,
        kErrorOutOfMemory,
        kErrorMalformedInput,
    };
    
    //宏的命名方式
    enum AlternateUrlTableErrors {
        OK = 0,
        OUT_OF_MEMORY = 1,
        MALFORMED_INPUT = 2,
    };
    

    常见变量的缩写:

    argument可缩写为arg
    buffer可缩写为buff
    clock可缩写为clk
    command可缩写为cmd
    compare可缩写为cmp
    configuration可缩写为cfg
    device可缩写为dev
    error可缩写为err
    hexadecimal可缩写为hex
    increment可缩写为inc,
    initialize可缩写为init
    maximum可缩写为max
    message可缩写为msg
    minimum可缩写为min
    parameter可缩写为para
    previous可缩写为prey
    register可缩写为reg
    semaphore可缩写为sem
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值