我将采用的 C++编码规范(1)——命名约定

公司成立不久,暂时没有完备的项目编码规范。自己现在的工作也基本上是独立完成,没有团队合作。所以这里的命名约定作为自己的“单兵装备”,尽量约束自己写出风格统一、清晰易读的代码。本约定几乎完全参考“Google C++ Style”,部分参考“QT”。

所采用的命名风格可以直接确定命名实体是:类型、变量、函数、常量、宏等等,而无需查找实体声明。

(1)通用命名规则

1. 尽可能不使用缩写,即便是那些显而易见的缩写(如:num -> number)。

2. 类型和变量名一般为名词,如:FileOpener、number_errors。

3. 函数名通常是指令性的,如OpenFile()。

(2)文件命名

1. 文件名全部小写,以下划线(_)作为分隔符,如:my_userful_class.cpp。

2. 尽量让文件名更加明确,如:http_server_logs.h比logs.h要好。

(3)类型命名(包含类、结构体、类型定义(typedef)、枚举)

每个单词以大写字母开头,不包含下划线,如:MyClass。

(4)变量命名

1. 所有单词小写,以下划线(_)做分隔符,类的成员变量以下划线结尾。如:my_local_variable、my_member_variable_。

2. 结构体的数据成员和普通变量一样,不用以下划线(_)结尾。

3. 全局变量以g_为前缀。

我将采用的 C++编码规范(1)——命名约定(5)常量命名

以k为前缀,后接大写字母开头的单词,无下划线分隔。如:const int kDaysInAWeek = 7;

(6)函数命名

1. 普通函数以大写字母开头,每个单词首字母大写,无下划线分隔。如:AddTableEntry()、DeleteUrl()。

2. 存取函数要与存取的变量名匹配,如:

class MyClass

{

  public:

   ...

   int get_num_entries() const { return num_entries_; }

   void set_num_entries(int num_entries) { num_entries_ = num_entries; }

  private:

   int num_entries_;

};

3. 短小的内联函数名也可以使用小写字母。(从这一点上可以看出,小写的函数名意味着可以直接内联使用。)

4. 关于布尔属性的设置函数和提取函数参考规则(9)。

(7)枚举值命名

1. 枚举值全部大写,以下划线(_)做分隔符,如:MY_ENUM_VALUE。

2. 枚举名称属于类型,参考规则(3)。

3. 每个枚举值里,至少重复一个枚举类型名中的元素。如:

enum CaseSensitivity

{

    CaseInsensitive,

    CaseSensitive

};

(8)宏命名

所有单词全部大写,使用下划线(_)分隔。如:#define PI_ROUNDED 3.0。

(9)布尔属性的设置函数(Setter)和提取函数(Getter)命名

1. 形容类的属性加Is前缀,如:IsChecked()、IsEmpty()、IsEnable()。

2. 应用到复数名词的形容类属性不加Is前缀,如:ScrollBarsEnabled()而不是AreScrollBarsEnabled()

3. 动词类的属性不使用前缀,且不使用第三人称(-s),如:AcceptDrops()而不是AcceptsDrops()。

4. 前3条针对提取函数,对于设置函数也使用相同的规则,只不过前缀换做是Set。

(10)选择指针作为传出[out]型参数

如:

void GetHsv(int *h, int *s, int *v);

color.GetHsv(&h, &s, &v);

大部分C++书籍推荐使用引用,因为一般认为引用比指针更“安全且好用”。但这里决定使用指针,因为这更能清楚的说明,在函数调用后,h、s和v将有很大几率被改动。

(11)全面抛弃“匈牙利命名法”

原文链接: https://www.cnblogs.com/zhuyf87/archive/2012/11/08/2760858.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    我将采用的 C++编码规范(1)——命名约定

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/68578

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午1:24
下一篇 2023年2月9日 下午1:24

相关推荐