2017-09-05 54 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