介绍一个 C/C++ 、C#、JAVA 代码美化工具

来源:互联网 发布:时无英雄使竖子 知乎 编辑:程序博客网 时间:2024/06/07 05:03

======================================================
注:本文源代码点此下载
======================================================

给大伙介绍一个开源工具 astyle,支持c/c++、c#、java等语言,按照不同的风格格式化代码,也可以称为美化代码。

用这个工具格式化出来的代码与我自已的风格几乎一样,我很喜欢这个小工具,也可以很方便的集成到vs里面去。

效果如下, 格式化前的代码:

dworddwthreadid;

handle hthread=createthread(null, 0, mythreadfunction, 0, 0, &dwthreadid);

if (hthread!=null){

waitforsingleobject(hthread, infinite);

} else {

_tprintf(_t("createthread error %d\n"), getlasterror());

}

格式化后的代码:

dworddwthreadid;

handle hthread = createthread( null, 0, mythreadfunction, 0, 0, &dwthreadid );

if ( hthread != null )

{

waitforsingleobject( hthread, infinite );

}

else

{

_tprintf( _t( "createthread error %d\n" ), getlasterror() );

}

如果你不喜欢格式化后的代码风格,也可以选择其它的风格,不一一举例说明了。

参数的含义:

astyle.exe -a1 -s4 -m80 -p -j -d -h -c -w test.cpp

-a1/--style=ansi ansi c风格代码 我个人喜欢用这个风格

void foo(bool isfoo)

{

if (isfoo)

{

bar();

}

else

{

anotherbar();

}

}

--indent=spaces / --indent=spaces=# / -s# 强制使用空格作为缩进

#代表要缩进的空格的个数如-s4 代表要缩进4个空格,强烈建议使用这个参数

-p在运算符号左右加上空格视个人喜好

if (foo==2)

a=bar((b-c)*a,d--);

becomes:

if (foo == 2)

a = bar((b - c) * a, d—);

-j给每个if增加大括号 视个人喜好

if (isfoo)

isfoo = false;

becomes:

if (isfoo) {

isfoo = false;

}

-d在小括号边上增加上一个空格 视个人喜好

if (isfoo(a, b))

bar(a, b);

becomes:

if ( isfoo( a, b ) )

bar( a, b );

-h 在c/c++ 关键字的后面增加一个空格 建议使用

if(isfoo(a, b))

bar(a, b);

becomes:

if (isfoo(a, b))

bar(a, b);

-m# 对定义的参数和变量进行对齐 ,这个参数很有用,可以将零乱的参数对齐

fooarray[] = { red,

green,

blue };

foofunction(bararg1,

bararg2,

bararg3);

becomes (with larger value):

fooarray[] = { red,

green,

blue };

foofunction(bararg1,

bararg2,

bararg3);

-c 把tab字符替换成空格强烈建议使用这个参数

为什么要把tab替换成空格?

主要是因为各种不同的编辑器对tab的解释不一样造成的。有的编辑器把tab解释成4个空格,有的是8个,还有的是2个。

这样会破坏原有的代码的对齐的结构,因此最好把tab替换成空格,这样不管在任何编辑器下面代码都是以对齐的风格来显示。

-w对宏进行对齐处理 建议使用

#define is_bar(arg,a,b) \

(is_foo((arg), (a)) \

|| is_foo((arg), (b)))

becomes:

#define is_bar(arg,a,b) \

(is_foo((arg), (a)) \

|| is_foo((arg), (b)))

看到上面这么多的美化代码的参数,真的很hi。

astyle.exe –a1 -s4 -m80 -p -j -d -h -c -w $(itemfilename)$(itemext)

这个参数是我自已用的,大伙可以根据自已的风格来设定, astyle 还有很多的其它参数,我只是列出我自已常用到的参数,其它的参数详细信息请参与帮助文档。

如果集成到vs当中呢?

1. 把astyle.exe 拷到 “c:\program files\microsoft visual studio 9.0\common7\ide\”目录下

2. tools –> external tools

如图增加一个外部工具配置

在tools菜单下面会多出一个beautify点击它就可以来美化当前的文件 如下图:

总体来说这个工具美化的效果还是很不错的,喜欢的人大家都可以试试。

官方网站: http://astyle.sourceforge.net/

官方下载:http://nchc.dl.sourceforge.net/project/astyle/astyle/astyle%202.02/astyle_2.02_windows.zip


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击