常用的C/C++代码格式优化工具有两个,一是老牌的indent,再一个就是astyle了。
astyle不但可以对C/C++进行格式优化,还可以处理Java和C#。
通过命令“astyle --help”可以获取所有参数的介绍。
下面的命令可以一次性格式化某个目录下所有的源文件和头文件,非常好用,标记一下。
for /R %f in (*.cpp;*.c;*.h) do astyle --style=ansi "%f"
基于V2.02版本,astyle主要支持的参数有:
Style-格式配置:
最常用的就是ansi或或kr格式,实际上,kr,stroustrup和linux这三种格式是非常接近的了,试了好几个文件,只有非常微小的区别,可以忽略不计。
stype | --style=allman | --style=java | --style=kr | --style=stroustrup | --style=whitesmith | --style=banner |
代码风格 | int Foo() | int Foo() { | int Foo() | int Foo() | int Foo() | int Foo() { |
stype | --style=gnu | --style=linux | --style=horstmann | --style=1tbs | --style=pico | --style=lisp |
代码风格 | int Foo() | int Foo() | int Foo() | int Foo() | int Foo() | int Foo() { |
其他常用的参数:
-C | 类中public,pretected,private关键字,一个tab的缩进 |
-S | switch中case关键字,一个tab的缩进 |
-K | switch中case关键字,无缩进 |
-N | 被namespace包含的block,一个tab的缩进 |
-w | 格式化多行的宏定义 |
-c | 将tab转化为对应个数的空格 |
--mode=c | 格式化的是C/C++的源文件或者头文件(缺省值) |
--mode=java | 格式化的是JAVA的源文件 |
--suffix=#### | 将原始文件保存为“####”后缀,而不是“orig” |
--suffix=none | 不保存原始文件 |
--exclude=#### | 优化时不包含“####”文件或目录 |
-Z | 修改后保持文件的修改时间不变 |
-X | 将错误信息输出到标准输出设备(stdout),而不是标准错误设备(stderr) |
-Q | 只显示格式化前后发生变化的文件 |
-q | 不输出任何信息 |
-z1 | 使用windows版本的回车符(CRLF) |
-z2 | 使用linux版本的回车符(LF) |
--help | 显示帮助信息 |
-v | 显示版本信息 |