Als «undefined-behavior» getaggte Fragen

Das unvorhersehbare Ergebnis des Kompilierens oder Ausführens eines Programms, das gegen Regeln der Sprache verstößt, müssen weder Compiler, Interpreter noch Laufzeitsystem erzwingen. Verwenden Sie dieses Tag NICHT für Fragen zum Datentyp oder zum Rückgabewert von "undefined". In diesen Fällen sollte stattdessen das Tag [undefined] verwendet werden.

5
Undefiniertes Verhalten und Sequenzpunkte
Was sind "Sequenzpunkte"? Welche Beziehung besteht zwischen undefiniertem Verhalten und Sequenzpunkten? Ich benutze oft lustige und verschlungene Ausdrücke wie a[++i] = i;, um mich besser zu fühlen. Warum sollte ich sie nicht mehr benutzen? Wenn Sie dies gelesen haben, lesen Sie unbedingt die Folgefrage Undefiniertes Verhalten und neu geladene Sequenzpunkte …








5
Warum ist ein vorzeichenloser Ganzzahlüberlauf als Verhalten definiert, ein vorzeichenbehafteter Ganzzahlüberlauf jedoch nicht?
Der vorzeichenlose Ganzzahlüberlauf ist sowohl im C- als auch im C ++ - Standard gut definiert. Zum Beispiel heißt es im C99-Standard ( §6.2.5/9) Eine Berechnung mit vorzeichenlosen Operanden kann niemals überlaufen, da ein Ergebnis, das nicht durch den resultierenden vorzeichenlosen Ganzzahltyp dargestellt werden kann, modulo um die Zahl reduziert …

11
Was sind all die gängigen undefinierten Verhaltensweisen, über die ein C ++ - Programmierer Bescheid wissen sollte? [geschlossen]
Es ist schwer zu sagen, was hier gefragt wird. Diese Frage ist mehrdeutig, vage, unvollständig, zu weit gefasst oder rhetorisch und kann in ihrer gegenwärtigen Form nicht angemessen beantwortet werden. Wenn Sie Hilfe zur Klärung dieser Frage benötigen, damit sie wieder geöffnet werden kann, besuchen Sie die Hilfe . Geschlossen …


5
Warum erzeugt diese Schleife "Warnung: Iteration 3u ruft undefiniertes Verhalten auf" und gibt mehr als 4 Zeilen aus?
Zusammenstellung: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } und gccerzeugt die folgende Warnung: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ Ich verstehe, dass es einen vorzeichenbehafteten Ganzzahlüberlauf gibt. Was ich nicht …

8
Optimieren Sie eine "Weile (1)"; in C ++ 0x
Aktualisiert, siehe unten! Ich habe gehört und gelesen, dass C ++ 0x einem Compiler erlaubt, "Hallo" für das folgende Snippet zu drucken #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Es hat anscheinend etwas mit Threads und Optimierungsmöglichkeiten zu tun. Es scheint mir, dass dies …



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.