2017-09-05 53 views
0

,我遇到while循环的问题。如果while循环没有主体,则尾随分号将被推送到下一行。在github和这个网站上,我发现没有提到这一点。这个问题是否涉及在不同的路线上强行划线?在使用uncrustify时,bodieless while循环和uncrustify中的分号之间的换行符

我试过它的代码是:(这也是它应该是什么样子到底)

int main() 
{ 
    int i = 20000; 
    while(i--); 
    return 0; 
} 

但是uncrustify的回报是:

int main() 
{ 
    int i = 20000; 
    while (i--) 
     ; 
    return 0; 
} 

任何人可以帮助我识别导致这种情况的选项? 配置文件:https://pastebin.com/3FUqHmp8

先谢谢您!

回答

0

对于空配置文件,这种情况不会发生,所以此行为是由您在使用的配置文件(最有可能是nl_*选项之一)中添加的选项引起的。

发布一个链接到您的文件。


双方的这种选择导致此行为:

# Add or remove newline between 'while' and '{'. 
nl_while_brace     = force # ignore/add/remove/force 

# Change a one-liner while statement into simple unbraced while 
# 'while (i<5) foo(i++);' => 'while (i<5)\n foo(i++);'. 
nl_split_while_one_liner  = true  # false/true 

记住Uncrustify还认为缺少括号(虚拟括号)是括号(nl_while_brace)。

Uncrustify有一个选项来禁止处理间隔选项的vbraces,但它似乎缺少新行选项。如果您需要在github存储库站点上打开一个功能或请求:https://github.com/uncrustify/uncrustify

+0

好吧,我对这个vbrace的东西很难,但认为它可能只适用于空格,而不是新行。我想,我必须为此打开功能请求。不幸的是,我不能满足你的答案(没有足够的声望)。感谢你的付出! – InfoMathze