Ho una domanda circa il codice seguente:divisione per zero - c programmazione
int main {
double x = 0;
double y = 0/x;
if(y==1) {.....}
....
....
return 0;
}
Quando eseguo il codice sul mio computer, non ottengo errore di runtime e vedo che y = -nan(0x8000000000000)
. Perché non è un errore di runtime da dividere per zero?
Inoltre, quando cambio la prima riga su int x = 0;
ora c'è un errore di runtime. Qual è la differenza?
@Jens: No, l'allegato F dello standard C99 prevale su questo e non si ottiene un comportamento indefinito per il punto mobile. Non tutte le implementazioni supportano l'appendice F, ma la tua e la mia fanno. –