i++ + i++
-
sorry, ich sehe das undefinierte verhalten gerade nicht...
-
gcc: Gleiches Ergebnis wie oben.
-
Aber warum soll der Code undefiniertes Verhalten hervorrufen? Bei "f(v[i],i++);" kann ich es ja noch verstehen.
-
[ot]
http://www.research.att.com/~bs/bs_faq2.html#simple-program :Warum beendet der Stroustrup seine main Funktion mit einem return 0?
Das ist doch laut Standard falsch??
[/ot]
-
Headhunter schrieb:
[ot]
http://www.research.att.com/~bs/bs_faq2.html#simple-program :Warum beendet der Stroustrup seine main Funktion mit einem return 0?
Das ist doch laut Standard falsch??
[/ot]Hab ich jetzt irgendwie wohl nicht verstanden.
Das return 0 ist laut Standard einfach optional.
-
Ich habe auch mal gelesen, dass i++ bzw. ++i laut dem Standard undefiniert sind.
// Bei folgender Zeile ist es ja egal ob // i vor oder nach dem Aufruf erhöht. i++; // Bei folgendem sieht es unter // Umständen schon anders aus ... while ( i++ ) ..
Jedoch habe ich weder mit VC++ noch mit GCC Probleme im Zusammenhang damit gehabt.
-
Herrmann schrieb:
Ich habe auch mal gelesen, dass i++ bzw. ++i laut dem Standard undefiniert sind.
Entweder hast du dich verlesen oder die quelle ist mist.
++i;
oder auch i++;
ist sehr wohl definiert.lediglich
a=i++ + ++i;
ist es nicht.wird zuerst i++ oder ++i ausgefuehrt? beides ist legal. deshalb ist das ergebnis undefiniert.
-
Shade Of Mine schrieb:
sorry, ich sehe das undefinierte verhalten gerade nicht...
Hier ist es:
v[i]=i++;
Diese Zuweisung führt *keinen* Sequence-Point ein und:
"Between the previous and next sequence point an object shall
have its stored value modified at most once by the
evaluation of an expression. Furthermore, the prior value
shall be accessed only to determine the value to be stored."Und jetzt zählen wir mal. Ich zähle eine Modifikation, aber zwei Lesezugriffe. Nur eine davon (die des Post-Increments) ist erlaubt.
-
HumeSikkins schrieb:
Diese Zuweisung führt *keinen* Sequence-Point ein und:
Oha. Mein Fehler
-
@Shade Of Mine, ich werde nochmal überlegen wo ich es gelesen habe. Wenn ich es finde kann ich es ja nochmal posten.
-
Herrmann schrieb:
@Shade Of Mine, ich werde nochmal überlegen wo ich es gelesen habe. Wenn ich es finde kann ich es ja nochmal posten.
Da es blödsinn ist, brauchst du es auch nicht posten. Sinnvoller wäre es, wenn du dich nach sinnvolleren Quellen umschauen würdest