Mam pytanie odnośnie następnego kodu:dzielenie przez zero - c programowania
int main {
double x = 0;
double y = 0/x;
if(y==1) {.....}
....
....
return 0;
}
Kiedy uruchomić kod na komputerze, mam żadnego błędu wykonawczego i widzę, że y = -nan(0x8000000000000)
. Dlaczego błąd runtime nie jest dzielony przez zero?
Dodatkowo, po zmianie pierwszego wiersza na int x = 0;
, teraz wystąpił błąd środowiska wykonawczego. Jaka jest różnica?
@Jens: Nie, załącznik F do standardu C99 przesłania to i nie otrzymujesz nieokreślonego zachowania dla zmiennoprzecinkowego. Nie wszystkie implementacje obsługują załącznik F, ale twój i mój robią. –