编程排版风格与AStyle工具的使用

就类似于写文章一样,一个好的非常好编程代码排版可以让代码看起来更加漂亮,而且还可以提升代码的可读性,便于对代码的理解,特别是老的项目,好的排版以后自己看了更容易维护和纠错。排版主要用到的就是对齐、缩进空行和换行,然后就是不同编程风格对与括号的位置使用,还有注释和注释符号的一些应用,都会影响到排版的好坏。

  先说一下缩进,因为不同的编辑器,tab缩进还不一定一样,有些是8个空格,有些是4个空格,编写的时候可以用tab,也可以用空格键。数量要一致,大部分是用4个。而且有些人的部分代码是通过自动生成软件生成的,这种情况也可能会遇到缩进空格数量不一致的代码,应该也要统一掉。一般的都是在某段代码属于前一句代码内部的时候,需要进行代码缩进,以形成包含关系。

  对于空行,一般都是在相对独立的程序模块之间、变量说明之后,加空行。比如说变量声明之后,或者是每个函数中间的位置,应该加上1个空行,不好的排版有不加空行和加多个空行。而在遇到语句非常长的时候,就应该换行进行多行书写,并且应该在长表达式要在低优先级操作符处划分新行,操作符放在新行最前面,划分出的新行要进行适当的缩进,这样才最易读。另外如果是函数的参数比较长,也应该进行换行划分。

  代码应该尽量通过变量或者函数的命名让代码可读,在很难看懂代码含义的地方添加注释,不要过度注释。一行注释一般采用//…,多行注释必须采用 /*…*/,注释应与其描述的代码相近,对代码的注释应放在其上方或右方相邻位置,不要放在下面,如过放于上方,则需与其上面的代码用空行隔开,且与所描述的内容具有同样的缩进。程序中有效注释量控制在20%左右,太多的注释会让人眼花缭乱。并且在修改了功能代码之后,别忘了改注释说明,不然容易产品错误注释。

  在嵌入式开发中,特别是MDK和source insight下面,比较常用的自动排版工具就是Astyle了,这个软件可以自动对齐并且可以调整代码的编程风格。以我自己常用的MDK为例,说一下怎么使用。

1、先下载软件并且可以放在自己的MDK安装目录下。

2、打开MDK tools->customize tools menu,在menu content处可以新增几个指令名称,比方说all和current等等,表达的是全局排版还是当前排版。

3、分别在两个指令名称下面的command中调用AStyle.exe

4、在argument中填入命令符,如我平时用的:

         all对应填的是"$E*.c" "$E*.h" --style=linux

      current对应填!E --style=linux

  这样两个指令就可以分别对全部代码和当前文件进行排版操作,采用的是linux编程风格。

  如下面的代码中,switch语句里面 多个case不对齐,break;也不对齐,recv(0,buffer,len);与send(0,buffer,len);不对齐,send(0,buffer,len);前面多一个tab。并且大括号也是两种编程风格。

  通过执行current命令后,可以看到代码排版变得整齐美观。

  实际上Astyle还有很多命令可以执行,大家自己可以去了解一下,篇幅有限这里就不一一说明了,希望能够帮助到大家提升代码排版美观度。
---------------------
作者:forgot
链接:https://bbs.21ic.com/icview-3283082-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
包含源代码,需要的可以自行下载。 把astyle.exe 复制到 C:\WINDOWS 目录里,省的指定路径 VC6++ 设置方法 菜单->工具->定制->工具菜单内容->新建菜单,参数如下 命令行:astyle.exe 变量: --style=k&r --brackets=break --indent=spaces --indent-cases --indent-preprocessor --pad-header --pad-oper --unpad-paren --keep-one-line-statements --keep-one-line-blocks --convert-tabs $(FileName)$(FileExt) 初始目录: $(FileDir) VC2008 外部工具里设置,还可以添加快捷键 命令:astyle.exe 参数: --style=k&r --brackets=break --indent=spaces --indent-cases --indent-preprocessor --pad-header --pad-oper --unpad-paren --keep-one-line-statements --keep-one-line-blocks --convert-tabs $(ItemFileName)$(ItemExt) 初始目录: $(ItemDir) CodeBlocks 设置差不多,很多绿色版的已经设置好了 AStyle_2.02_windows.zip bin 目录里有官方编译好的 Artistic Style 2.01 Maintained by: Jim Pattee Original Author: Tal Davidson Usage : astyle [options] Source1.cpp Source2.cpp [...] astyle [options] Beautified When indenting a specific file, the resulting indented file RETAINS the original file-name. The original pre-indented file is renamed, with a suffix of ".orig" added to the original filename. Wildcards (* and ?) may be used in the filename. A 'recursive' option can process directories recursively. By default, astyle is set up to indent C/C++/C#/Java files, with four spaces per indent, a maximal indentation of 40 spaces inside continuous statements, a minimum indentation of eight spaces inside conditional statements, and NO formatting options.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值