每个人都有自己的编码风格,但如果要和别人协同开发软件,最好是采用一样的风格,可是强行要求他人更改编码风格可能会比较难,那么有没有更好的解决方式呢?
当然有,在软件的世界中,有需求就会有解决方案,毕竟大神那么多。
格式化 C、C++ 代码有一个好用的工具:clang_format。
clang_format 支持多种代码风格:Google, Chromium, LLVM, Mozilla, WebKit,也支持自定义风格(通过编写.clang-format文件),很方便的统一代码格式。
Linux下安装Clang-format :
- sudo apt-get install clang-format
具体的使用大家可以百度,很简单,肯定比我讲的全。
另外,推荐使用 VSCode 的 C/C++ 插件,自带了 Clang-Format 格式化工具,不仅拥有上述 5 种排版格式,还定义了自己的 Visual Studio 排版格式,且此格式是默认的排版格式(Ubuntu下格式化快捷键:Ctrl+Shift+I,Windows下格式化快捷键:Shift+Alt+F)。
格式化前:
安装了C/C++ 插件后,鼠标右键,选择格式化文档。
格式化后:
C、C++ 代码可以使用 clang_format 格式化,java 代码呢?不用担心,Android Studio 有内置的格式化代码的工具,不需要自己安装插件和工具。
选中文件,右键,选择Reformat Code,即可将我们的 java 代码格式化成谷歌的代码风格。
通过以上的方式,我们完成了代码风格的格式化,包括大括号小括号位置、换行设置等。那下一步,就是规范我们的命名。
C、C++ 和 java 的命名方式有很大的不同,C语言:
Linux 编码风格总结
Android 有自己的命名风格,包括局部变量、静态变量、类名、包名、接口、try - catch 闭包规定等,都有很大的不同。
在Linux 中喜欢用下划线分割,在 Android 中需要遵循驼峰原则,具体的Android 中 java 编码命名规定,参考如下链接:
https://www.jianshu.com/p/0a984f999592
Android 命名规范举例:
非常量字段名以 LowerCamelCase 风格的基础上改造为如下风格:
基本结构为 scopeVariableNameType。
- scope:范围
- 非公有,非静态字段命名以m开头。
- 静态字段命名以s开头。
- 公有非静态字段命名以p开头。
- 公有静态字段(全局变量)命名以g开头。
- public static final 字段(常量) 全部大写,并用下划线连起来。
- public class MyClass {
- public static final int SOME_CONSTANT = 42;
- public int pField;
- private static MyClass sSingleton;
- int mPackagePrivate;
- private int mPrivate;
- protected int mProtected;
- public static int gField;
- }
希望我们实现功能的同时,能够拥有一个好的编码风格,这样别人看我们的代码会感觉很舒服,像欣赏一个艺术品。
本文转载自微信公众号「嵌入式Linux系统开发」