01. 使用Google C++编程风格规范
01. 使用Google C++编程风格规范
规范原文学习
Google C++
编程风格指南为C++
代码的编写提供了一套标准化的规则,以确保代码的一致性、可读性和可维护性,值得学习,地址:
配置VsCode插件
进入vscode
插件管理页面(快捷键Ctrl+Shift+X
),输入cpplint
,安装完全匹配的cpplint
插件即可。
vscode
插件依赖于python
脚本cpplint
,通过pip
安装:
pip install cpplint
Tips
如果pip
安装很慢,可以指定国内源,此处使用清华源:
pip install cpplint -i https://pypi.tuna.tsinghua.edu.cn/simple
或者在~/.pip/pip.conf
文件中添加以下内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
查看效果
写一个简单的测试头文件test.h
:
class TestClass{
public:
TestClass() = default;
int a;
int b;
};
检测结果如下:
问题修复
Tips
只知道提出问题,而没法带来解决方案,这是一个坏习惯。
前面使用cpplint
插件,在每个打开的文件中都会提示现有的问题。
像其中的一些比如#ifndef
宏的内容,自己手动改了也可以接收,但比如缩进、等号旁空格、一行代码过长等内容也要手动调整就过于麻烦了,这时引入另一个插件clang-format
。
安装clang-format并格式化
在vscode
插件中心搜索clang-format
,安装作者为Xaver Hellauer
的插件:
该插件依赖于clang-format
软件,在ubuntu
上使用apt
安装:
sudo apt install clang-format
安装完成后可以在C++
的文件编辑页面右键->使用...格式化文档->Clang-Format,执行之后将对文档进行格式化处理。
Tips
建议把clang-format
设置为默认的格式化工具。
但是处理完了之后发现区别很小:就调整了一下缩进,而且仍然不符合要求。
配置Google风格格式化
原因在于,clang-format
默认使用的是LLVM
风格的格式化,我们可以简单一句指令就完成配置,在项目目录打开控制台:
clang-format --style=google --dump-config > .clang-format
该指令将clang-format
使用Google
代码风格规范的配置文件生成到当前目录下。
Tips
.clang-format
文件将成为当前项目格式化用的配置文件,修改其中的配置就可以修改格式化行为。
这时再执行格式化,结果如下:
可以看到报错少了一个(缩进符合要求了),再将其它几个问题解决一下:
- 加入
Copyright
行; - 添加头文件守卫;
- 文件末尾添加
1
个空行。
大功告成!
优化
上一步中使用.clang-format
文件的方式还是不够优雅,但为了了解到各种可能的配置还是有必要看一看的,也可以根据自身喜好去自定义部分规则;
Tips
比如可以设置宏对齐、赋值对齐等,有些意思。
但如果更希望项目里面干净一点,不想在项目目录添加一个.clang-format
文件,则可以使用vscode
的用户设置:
按下F1
,输入user json
,选择打开用户设置,在其中添加一行:
"clang-format.style": "google"
这样就算项目目录下没有.clang-format
文件,也会使用Google
风格的格式化了。
另外,如果我比较懒,希望能够自动格式化,而非手动右键选择格式化,也可以再加一行配置:
"editor.formatOnSave": true
这样一来,只要每次保存文件即可自动调用格式化!
再顺便一提,如果刚才在格式化时配置了默认格式化为clang-format
,那么在配置文件里应该还能看到这样的内容:
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
}
所以,进行用户设置时可以直接添加以下内容,实现默认格式化程序设置、Google
格式化风格设置、保存时自动格式化的功能:
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"clang-format.style": "google",
"editor.formatOnSave": true
总结
在
vscode
中安装插件:cpplint
:用于提示哪些内容不符合Google C++
编程风格规范;clang-format
:用于执行代码格式化;
安装插件的依赖工具:
cpplint
:pip install cpplint -i https://pypi.tuna.tsinghua.edu.cn/simple
clang-format
:sudo apt install clang-format
配置
vscode
,按下F1
输入user json
,打开用户设置,在其中添加以下内容:
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"clang-format.style": "google",
"editor.formatOnSave": true