Division durch null - c-Programmierung

Ich habe eine Frage zu folgenden code:

int main { 
double x = 0;
double y = 0/x;

if(y==1) {.....}
....
....
return 0;
}

Wenn ich den code auf meinem computer, ich bekomme kein runtime error und ich sehe, dass y = -nan(0x8000000000000). Warum es nicht zu einem Laufzeitfehler Division durch null?

Außerdem, wenn ich die erste Zeile zu int x = 0;
jetzt gibt es einen Laufzeitfehler. Was ist der Unterschied?

  • Nein, Anhang F der C99-standard setzt und Sie nicht bekommen, nicht definiertes Verhalten für floating point. Nicht alle Implementierungen unterstützen Anhang F, aber dein und mein tun.
InformationsquelleAutor wantToLearn | 2012-10-28
Schreibe einen Kommentar