美化 C++ 代码以在条件语句中添加括号

Posted

技术标签:

【中文标题】美化 C++ 代码以在条件语句中添加括号【英文标题】:Beautify C++ code to add brackets to conditional statements 【发布时间】:2010-09-24 10:29:56 【问题描述】:

如何?我需要做的是改变:

if ( myCondition )
    setDateTime( date, time );

if ( myCondition )

    setDateTime( date, time );

但我必须这样做数百次。我使用了AStyle,但我找不到如何使用它。

除了满足客户的编码标准之外,我想这样做的原因是我必须用setDate( date )setTime( time ) 替换某些调用,例如上面对setDateTime( date, time ) 的调用,我可以很容易地做到这一点正则表达式,但最终是这样的:

if ( myCondition )
    setDate( date );
    setTime( time );

显然不对!!!

【问题讨论】:

我不知道这方面的工具。重新正则表达式替换,您总是可以替换 setDate(date); setTime(time); - 如果有额外的 级别也没关系。 现在我们已经知道我们应该首先使用方括号 :) 在旁注中,如果你可以控制setDateTime,我想你可以修改它来调用@分别是987654332@和setTime @Michael:很好,也感谢 Steve Jessop 指出这一点。我的客户正在从一个子系统转移到另一个子系统,理想情况下,最好彻底休息一下并使用没有任何“帮助程序”的新 API 使其看起来像旧 API。这些都很好,但是当没有人知道为什么要引入帮助器时,可能会让人感到困惑(顺便说一下,setDate 等只是示例,而不是涉及更多的真实事物。)也就是说,这一切都归结为以多快(阅读:便宜)可以做到这一点。 【参考方案1】:

static inline void setDateTime(date, time) setDate(date); setTime(time);

关于if:astyle 选项--add-bracketsbrackets=break 结合是否对您不起作用?当我使用 astyle 时,我发现很难让它完全按照我的意愿去做。因此,如果您要使用它,最简单的方法是根据一组 astyle 参数定义编码风格指南,然后使用 astyle 来强制执行它们。

我并没有被不一致的风格所困扰,我个人认为这是值得的,但是客户总是勉强容忍对。

【讨论】:

谢谢,看起来 --add-brackets 似乎完全符合我的要求。也就是说,我还没有尝试过。非常感谢。【参考方案2】:
s/setDateTime(date, time)/ setDate(date); setTime(time); /

【讨论】:

谢谢。当然,这确实有效,但是它具有奇怪但通常无害的副作用,即 all setDateTime() 调用即使不是有条件的也会被括起来。在这再次通过 AStyle 之后,生成的代码看起来很奇怪 - 没有明显原因的中间代码块。 这不是简单的文本替换,宏是干什么用的?在某种程度上,他们是为了任何事情,我的意思是 ;-)

以上是关于美化 C++ 代码以在条件语句中添加括号的主要内容,如果未能解决你的问题,请参考以下文章

条件语句示例

创建条件语句以在 web config 上创建标签

GOGO语言学习笔记四

部分循环语句书写格式

visual studio 代码编辑时怎样自动添加大括号

go语言if/else语句用法