1 AStyle简介 以下是百度百科对Astyle的解释: 《Astyle是一个用来对C/C++代码进行格式化的 Eclipse 插件,可在 Eclipse CDT 环境中使用。该插件基于 Artistic Style 开发。可嵌入MDK,Source Insight,UE等软件使用》 1.1 为什么要使用Astyle工具 当我们打开其他人编写的代码的时候,有强迫症的读者会去修改代码的格式,比如对齐、空行、条件语句后面增加空格等,如果工程很大,那么会花费我们巨大的人力时间,对工程及个人是很不友好的,所以代码格式调整工具就孕育而生了。 1.2 Astyle下载 这里提供Astyle-v3.4-x64版本的下载文件,其他版本请到网上自行下载,这里不多介绍下载。这里以Astyle-v3.4-x64进行讲解。 下载好了之后,我们打开doc文件夹的《astyle.html》文件,这个文件有对Astyle的所有解释,但是我们使用不到这么多,我们下面简单讲解一下常用的配置参数以及怎么在其他IDE工具上集成Astyle工具。 1.3 Astyle常用配置参数 这里只是针对嵌入式C语言的代码的常用配置参数,其他编程语言的常用配置参数请自行参考doc文件夹的《astyle.html》文件进行修改。 Astyle常用命令参数参数 | 分类 | 说明 | -A1 | Brace Style Options | 每个括号都单独占一行,成对括号对齐,内容统一向后缩进 | -s4 | Tab Options | 缩进4个空格 | -xV | Brace Modify Options | 将“do-while”语句的右“while”附加到右大括号。这优先于大括号样式和打断-闭合大括号选项。 | -S | Indentation Options | 缩进“switch”块,以便在switch块中缩进“case X:”语句。 | -xW | Indentation Options | 条件编译缩进 | -Y | Indentation Options | 注释缩进 | -M# | Indentation Options | 设置缩进连续行的最大#个空格 | -f | Padding Options | 条件语句空行填充 | -xg | Padding Options | 逗号空格填充 | -H | Padding Options | 条件语句空格填充 | -U | Padding Options | 去除括号多余空格 | -c | Formatting Options | 将tab键替换成空格键 | -n | Other Options | 不保留原始数据备份 |
常用命令参数:-A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n 1.4 Astyle常用配置参数详解1.4.1 -A参数(括号独占)详解 括号使用-A1参数,该参数主要特点是:每个括号都单独占一行,成对括号对齐,内容统一向后缩进。 int Foo(bool isBar){ if (isBar) { bar(); return 1; } else return 0;} 1.4.2 -s4参数(缩进4个空格)详解 Tab键使用-s4参数,该参数特点是:缩进使用4个空格键。 void Foo() {....if (isBar1............&& isBar2) // indent of this line can be changed with min-conditional-indent........bar();} 1.4.3 -xV参数(do-while括号)详解 本条目只涉及到do...while参数,do..while缩进采用-xV参数,该参数特点为:将“do-while”语句的右“while”附加到右大括号。这优先于大括号样式和打断-闭合大括选项。 do{ bar(); ++x;}while x == 1;becomes: do{ bar(); ++x;} while x == 1; 1.4.4 -S参数(switch缩进)详解 缩进“switch”块,以便在switch块中缩进“case X:”语句。整个案例块缩进。 switch (foo){case 1: a += 1; break;case 2:{ a += 2; break;}}becomes: switch (foo){ case 1: a += 1; break; case 2: { a += 2; break; }} 1.4.5 -xW参数(条件编译缩进)详解 在大括号级别0处缩进预处理器块,并立即在命名空间中缩进。缩进的内容有限制。方法、类、数组等中的块不会缩进。包含大括号或多行定义语句的块将不会缩进。如果没有此选项,预处理器块将不会缩进。 #ifdef _WIN32#include <windows.h>#ifndef NO_EXPORT#define EXPORT#endif#endifbecomes: #ifdef _WIN32 #include <windows.h> #ifndef NO_EXPORT #define EXPORT #endif#endif 1.4.6 -Y参数(注释缩进)详解 从第一列开始缩进C++注释。默认情况下,从第一列开始的C++注释被认为是注释掉的代码,而不是缩进的。此选项将允许注释与代码一起缩进。 void Foo()\n"{// comment if (isFoo) bar();}becomes: void Foo()\n"{ // comment if (isFoo) bar();} 1.4.7 -M#参数(连续行最大空格缩进)详解 设置缩进连续行的最大#个空格。#表示列数,且不得小于40或大于120。如果未设置任何值,则将使用默认值40。此选项将防止连续线向右延伸过远。设置更大的值将允许代码进一步向右扩展。 fooArray[] = { red, green, blue };fooFunction(barArg1, barArg2, barArg3);becomes (with larger value): fooArray[] = { red, green, blue };fooFunction(barArg1, barArg2, barArg3); 1.4.8 -f参数(条件语句空行填充)详解 在条件语句"if"、"for"、"while"...等语句上下填充空行。 isFoo = true;if (isFoo) { bar();} else { anotherBar();}isBar = false;becomes: isFoo = true;if (isFoo) { bar();} else { anotherBar();}isBar = false; 1.4.9 -xg参数(逗号空格填充)详解 在逗号后插入空格填充。 if (isFoo(a,b)) bar(a,b);becomes: if (isFoo(a, b)) bar(a, b); 1.4.10 -H参数(条件语句空格填充)详解 在条件语句"if"、"for"、"while"...等语句后插入空格。 if(isFoo((a+2), b)) bar(a, b);becomes: if (isFoo((a+2), b)) bar(a, b); 1.4.11 -U参数(去除括号多余空格)详解 把括号中的多余空格去除。 if ( isFoo( ( a+2 ), b ) ) bar ( a, b );becomes (with no padding option requested): if(isFoo((a+2), b)) bar(a, b); -U参数不和条件语句空格填充(-H)冲突,比如设置了这两条指令,那么条件语句后面的空格也会保留。 if ( isFoo( ( a+2 ), b ) ) bar ( a, b );becomes (with no padding option requested): if (isFoo((a+2), b)) bar(a, b); 1.4.12 -c参数(tab转空格)详解 此命令是将tab键转换成空格键,但是和-s4命令重复,也可以两个命令都加上,也可以只加上-s4命令或此命令。 1.4.13 -n参数(不保留原始数据备份)详解 顾名思义,就是每次格式化之后的代码,修改前的文件不被保留。 2 Astyle在keil上的应用 下载好的astyle3.4-x64.rar进行解压,找到《astyle.exe》文件,记住位置。 2.1 Astyle加载到keil工具栏中 打开keil软件,选择tools-->Customize Tools Menu。 2.1.1 单个文件格式修改 按下图操作,并填写常用命名参数:"!E" -A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n 注意:"!E",这里表示获得当前焦点且正在编辑的文件 2.1.2 批量文件格式修改 按下图操作,并填写常用命名参数:"$E*.c" -A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n 注意:"$E*.c",表示查找当前文件所在的文件夹所有的*.c文件 如果要修改*.h文件,相应的命令参数为:"$E*.h" -A1 -s4 -xV -S -xW -Y -M120 -f -xg -H -U -c -n 2.2 代码格式调整演示2.2.1 单个文件格式修改演示 点击Tools-->astyle格式单个文件,查看到文件已经被格式化了,并且在《Build Output》窗口能够查看运行命令信息。 2.2.2 批量文件格式修改演示 点击Tools-->astyle格式多个文件,查看到当前文件所在的文件夹中的所有*.c文件已经被格式化了,并且在《Build Output》窗口能够查看运行命令信息(main.c文件已经在单个文件格式修改演示中被修改,所以这里不会被修改)。
|