Frage zu increment
-
-
Die Compiler warnen. Rant: ich halte es für einen fragwürdig, dass nicht ein Mindestset an Warnungen per default an ist bei gcc/clang. "may be undefined" -> warum kann man da nicht einen Compilefehler draus machen? Oder hat die sequence point Fehlermeldung false positives?
-
Wenn man den Code mal in godbolt kippt und die Compiler durchklickt, sieht man, dass ältere gcc (4.x) in der Tat 6 liefern und neuere 5. (jeweils mit -O2) zumindest.
-
-
irgendwie gibt es jetzt noch einen grund mehr, nur eine anweisung pro zeile zu machen. also man muss schon ziemlich wirr sein, wenn man diese ganzen regeln als endanwender auswendig lernt.
außerdem liefert der clang doch eine warnung und der gcc wird das auch tun (es wundert mich sowieso, warum es immer heißt "aktivier doch mal die warnungen!"; die sind nirgendwo ausgeschaltet.):
test.c:8:7: warning: multiple unsequenced modifications to 'x' [-Wunsequenced] x = x++; ~ ^ test.c:8:7: warning: multiple unsequenced modifications to 'x' [-Wunsequenced] x = x++ + x++;
-
@Wade1234 sagte in Frage zu increment:
es wundert mich sowieso, warum es immer heißt "aktivier doch mal die warnungen!"; die sind nirgendwo ausgeschaltet.):
Alle sind nicht aktiviert, selbst bei
-Wall
nicht.
Und bei VS ist i. A. auch nicht der höchste Warnlevel aktiv.
-
-
ja aber sie sind auch nicht komplett aus
-
@Wade1234 Es ist (wegen C-Historie) kein Fehler.
Ein gutes Programm compiliert ohne Warnungen.
Darum musst du dir auch alle Warnungen ansehen, so wie du es bei Fehlern auch machst.Wenn du es nicht machst, bleibt es dein Problem.
Ein Error zwingt dich halt nurzum hinschauen.️Edit nach Hinweis.
-
@DirkB sagte in Frage zu increment:
Ein Error zwingt dich halt nur zum hinschauen.️
Nein, ein Error zwingt dich dazu was zu ändern. Du kannst nen Error nicht einfach suppressen. Ne Warning dagegen schon - selbst wenn mit -Werror kompiliert wird.
-
@hustbaer Danke