Ich habe eine Frage zu den nächsten Code:Division durch Null - C-Programmierung
int main {
double x = 0;
double y = 0/x;
if(y==1) {.....}
....
....
return 0;
}
Wenn ich den Code auf meinem Computer laufen, bekomme ich keine Laufzeitfehler und ich sehe, dass y = -nan(0x8000000000000)
. Warum ist es kein Laufzeitfehler, durch Null zu teilen?
Zusätzlich, wenn ich die erste Zeile zu int x = 0;
jetzt ändern, gibt es einen Laufzeitfehler. Was ist der Unterschied?
@Jens: Nein, Anhang F des C99-Standards überschreibt dies und Sie erhalten kein undefiniertes Verhalten für Fließkomma. Nicht alle Implementierungen unterstützen Anhang F, aber deins und meins. –