erwartet, oder; vor wenn

8

Ich habe einen dummen Fehler gemacht (in letzter Zeit habe ich Semikolon, zu viel Python vergessen), habe aber eine interessante Fehlermeldung von gcc bekommen: "expected", "or"; vor 'wenn' ".

Ich weiß, dass diese Fehlermeldungen nur eine "obere Grenze" für möglichen Quellcode liefern, aber ich würde gerne wissen, ob es ein Konstrukt in C gibt, so dass "wenn" Token wirklich hinter "," und nicht nach "kommt" ; '.

    
Veky 04.12.2012, 11:59
quelle

3 Antworten

6

After ist nicht unbedingt unmittelbar nach . Die Fehlermeldung ist mehr: 'Ich habe gerade ein' if 'Konstrukt getroffen. An dieser Stelle erwartete ich entweder ein Ende der (vorherigen) Aussage oder den nächsten Punkt in der Liste. Eines dieser Dinge muss vor diesem "wenn" stehen, also lasse ich dich wissen,

    
mcalex 04.12.2012, 12:05
quelle
5
  

Ich würde gerne wissen, ob es ein Konstrukt in C gibt, so dass das "if" -Token wirklich hinter "," und nicht hinter ";" steht.

Laut der C BNF-Grammatik ist if immer am Anfang einer Aussage. Also nein, es kann kein , vorangestellt werden.

    
user703016 04.12.2012 12:10
quelle
1

Nein, es gibt keine Situation, in der ein Komma vor einer if -Anweisung erscheinen kann. Das muss ein Compiler-Tippfehler in gcc sein.

Ich würde vermuten, dass der gcc-Parser nach einem Sequenzpunkt vor einer if-Anweisung. Es gibt einen Sequenzpunkt an einem Semikolon, aber es gibt auch einen, an dem der Kommaoperator in einem Ausdruck verwendet wird. Es scheint also, dass der Fehler beim Drucken von Fehlern in ganzen Anweisungen und Ausdrücken irgendwie gleich ist.

    
Lundin 04.12.2012 12:16
quelle

Tags und Links