代码风格

  • content {:toc}

0 代码风格

  • C++ 风格指南
  • Cpplint 是一个 Python 脚本,作为一款开源免费的代码静态检测工具,Google 也使用它作为自己的 C++ 代码检测工具,也就是说,只要你想代码遵从 Google C++ 代码规范,那么 Cpplint 将会提供很好的代码静态检测支持。

1. 命名规则

  • 文件名要全部小写, 可以包含下划线 (_) 或连字符 (-), 依照项目的约定. 如果没有约定, 那么“_”更好.
  • 内联函数必须放在 .h 文件中. 如果内联函数比较短, 就直接放在 .h 中.
  • 类名称的每个单词首字母均大写, 不包含下划线: 形如MyExcitingClass, MyExcitingEnum.
  • 变量 (包括函数参数) 和数据成员名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾,
  • 常量 声明为 constexpr 或 const 的变量, 或在程序运行期间其值始终保持不变的, 命名时以“k”开头, 大小写混合.const int kDaysInAWeek = 7;
  • 函数名的每个单词首字母大写 (即“驼峰变量名”或“帕斯卡变量名”), 没有下划线. 对于首字母缩写的单词, 更倾向于将它们视作一个单词进行首字母大写 (例如, 写作 StartRpc() 而非 StartRPC()).

较好的起名

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int price_count_reader; // 用于读取价格计数器

int num_errors; // 错误数量

int num_dns_connections; // DNS 连接数量

int count; // 计数器

int error_count; // 错误数量

int num_completed_connections; // 完成的连接数量

int web_gateway_connections; // Web 网关连接数量

int page_cache_reader; // 用于读取页面缓存

int customer_id; // 客户 ID


// 类内变量名的规范
string table_name; // 好 - 用下划线.
string tablename; // 好 - 全小写.
string tableName; // 差 - 混合大小写


// 常量命名规范
const int kDaysInAWeek = 7;

2 注释风格

下面的规则描述了如何注释以及在哪儿注释

三层的注释

  • 文件注释

  • 类注释

  • 函数注释

  • 变量注释/ 实现注释

  • 使用 // 或 /* */, 统一就好.

  • 文件注释描述了该文件的内容. 如果一个文件只声明, 或实现, 或测试了一个对象, 并且这个对象已经在它的声明处进行了详细的注释, 那么就没必要再加上文件注释. 除此之外的其他文件都需要文件注释

我们使用空格缩进. 不要在代码中使用制表符. 你应该设置编辑器将制表符转为空格.

1
2
3
4
5
6
7
8
9
ReturnType LongClassName::ReallyReallyReallyLongFunctionName(
    Type par_name1,
    // 4 space indent
    Type par_name2,
    Type par_name3) {
  DoSomething();
  // 2 space indent
...
}
Licensed under CC BY-NC-SA 4.0
最后更新于 Oct 13, 2024 18:49 +0800
使用 Hugo 构建
主题 StackJimmy 设计