Frage zu increment
-
@hustbaer sagte in Frage zu increment:
@SeppJ sagte in Frage zu increment:
PPS: Der Preis dafür ist, das aus 5 Regeln nun 21 geworden sind
Naja dafür sind die aber halbwegs einfach.
Naja. Ist so meiner Meinung nach eher so wie wenn man aus
if isalpha(c) prio = 1; else if isdigit(c) prio = 2;
stattdessen
if c == 'a' prio = 1; else if c == 'b' prio = 2; // ... else if c == 'z' prio = 26; else if c == '0' prio = 27; // ...
macht.
-
@SeppJ Ja verstehe schon was du meinst. Andrerseits... wer Code schreibt wo das ne Rolle spielt, der ist mMn. selbst schuld. Klar, dazu muss man wissen was evtl. problematisch werden könnte. Aber man muss nicht die ganzen Regeln kennen wo es dann doch definiert ist.
-
-
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