ho cercato di stampare utilizzando galleggiante %d
(so che questo non dovrebbe essere fatto. Ma ogni volta re-run eseguibile dà un valore diverso)
La mia domanda è: Perché il valore stampato cambia ogni volta? My System: Ubuntu 14.04 (64 bit) Compiler: 4.8.4 Ecco il codice:C virgola mobile cambia il valore% d ogni volta eseguita
#include<stdio.h>
int main(){
float b = 12.3456;
printf("%d\n",b);
}
Esempio di output:
[email protected]:~/C-fi$ ./test
-1629995944
[email protected]:~/C-fi$ ./test
1147348376
[email protected]:~/C-fi$ ./test
-1746005432
[email protected]:~/C-fi$ ./test
510102216
[email protected]:~/C-fi$
Un meraviglioso esempio di * comportamento non definito * - Cos'altro hai bisogno di sapere? – tofro
Voglio sapere perché è successo? – 4bh1
Perché non è definito? – tofro