首页 > C/C++, 软件工程 > 使用Coan来净化众多的预编译指令,简化C/C++代码

使用Coan来净化众多的预编译指令,简化C/C++代码

2013年11月4日 发表评论 阅读评论 30405次阅读    

看开源代码的同学经常有个影响阅读的问题是许多的预编译指令,导致阅读很不顺畅。比如nginx代码中包含关于defined(WIN32) 的代码分支等。
找了很久没有找到能够净化,自动移除不需要的代码的工具,后来朋友介绍了Coan这个工具,(翻墙才能访问)。使用后妈妈再也不担心我的代码了!强烈推荐!不过好像隐约感觉,GCC预编译器应该就有这个功能,可能是某个参数指定。
比如我的需求是为了净化如下代码:

            if(listensock[i] != INVALID_SOCKET){
#ifndef WIN32
                close(listensock[i]);
#else
                closesocket(listensock[i]);
#endif
            }

因为我肯定不用关心windows方面代码,看着很碍眼,那么可以用Coan工具自动去除WIN32相关的代码为如下代码:

            if(listensock[i] != INVALID_SOCKET){
                close(listensock[i]);
            }

怎么样,清爽很多了吧,这个还是比较简单的,要是代码量大的,这样效果更明显了。

安装这个工具后,使用非常简单,到代码目录,使用如下命令就能搞定一切:

coan source -UWIN32 -DSIGHUP -U__CYGWIN__ -UWITH_BRIDGE --filter c,h --recurse .

对于刚看的mosquitto项目,我的净化命令是:

coan source -UWIN32 -DSIGHUP -U__CYGWIN__ -UWITH_BRIDGE -UWITH_TLS -UWITH_TLS_PSK -UCHANGESET --filter c,h --recurse .

上面的指令不多介绍了,看一下就知道。这样净化过的代码看起来顺畅很多了。搜索几乎找不到这个软件,强烈推荐!

Share
分类: C/C++, 软件工程 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。