2017-07-12 41 views
0

任何人有一個想法來避免'錯誤的'換行符':'之後?
現在它看起來像這樣:uncrustify成員初始化後的錯誤換行符':'

*Servo=(APOS_typ){Intern: 
         (APOSINT_typ){CCom: 
            Servo->Intern.CCom, MasterOf: 
            Servo->Intern.MasterOf, ClientOf: 
            Servo->Intern.ClientOf, UpdateTime: 
            Servo->Intern.UpdateTime, CycAbsMoveParID: 
            ACP10PAR_USER_I4_VAR1, FromDrive: 
            Servo->Intern.FromDrive, ToDrive: 
            Servo->Intern.ToDrive}}; 

我正在看着這樣的事情:

 *Servo=(APOS_typ){Intern : (APOSINT_typ){CCom : Servo->Intern.CCom, 
               MasterOf : Servo->Intern.MasterOf, 
               ClientOf : Servo->Intern.ClientOf, 
               UpdateTime : Servo->Intern.UpdateTime, 
               CycAbsMoveParID : ACP10PAR_USER_I4_VAR1, 
               FromDrive : Servo->Intern.FromDrive, 
               ToDrive : Servo->Intern.ToDrive}}; 

我找不到這個問題的任何參數default.cfg

+0

它可能有一些與你沒有使用標準的C語法?見例如[結構/聯合初始化參考](http://en.cppreference.com/w/c/language/struct_initialization)用於有效的指定語法。 –

+0

這不是uncrustify的錯,因爲這不是有效的C代碼。 –

+0

Thanx @Someprogrammerdude提示。這是自GCC 2.5以來的一個obsolet gcc擴展。我沒認出來。 –

回答

0

好吧,這是我的錯,我使用的是舊的gcc擴展。

正確的結構初始化現在看起來

 *Servo=(APOS_typ){.Intern=(APOSINT_typ){.CCom=Servo->Intern.CCom, 
               .MasterOf=Servo->Intern.MasterOf, 
               .ClientOf=Servo->Intern.ClientOf, 
               .UpdateTime=Servo->Intern.UpdateTime, 
               .CycAbsMoveParID=ACP10PAR_USER_I4_VAR1, 
               .FromDrive=Servo->Intern.FromDrive, 
               .ToDrive=Servo->Intern.ToDrive}}; 

和Uncrustify效果很好;-)