PDA

Visualizza la versione completa : [C] GCC Warning: uninitialized variable


gygabyte017
11-05-2010, 09:40
Ciao a tutti, ho una domanda: come mai in questo codice (x volutamente non inizializzata)


double get_precision()
{
double ds = 1, d, x ;

printf("%lf", x); /// <<<<<<<<<<< QUI
for ( ; x != 1; )
{
d = ds / 2.;
x = 1 + d;
ds = d;
}
return 2*d;
}

il compilatore ritorna giustamente un warning sulla x non inizializzata, mentre invece qui:


double get_precision()
{
double ds = 1, d, x ;

for ( ; x != 1; )
{
printf("%lf", x);
d = ds / 2.;
x = 1 + d;
ds = d;
}
return 2*d;
}

non dice nulla, nonostante la prima volta che fa il ciclo x non inizializzata????

Grazie

oregon
11-05-2010, 10:18
Con Visual C++ il warning c' in tutti e due i casi ...

linoma
11-05-2010, 15:54
Io avrei messo errore, evidentemente hai qualche opzione che dice di trattare l'errore cm warning.

MItaly
11-05-2010, 18:20
Originariamente inviato da linoma
Io avrei messo errore, evidentemente hai qualche opzione che dice di trattare l'errore cm warning.
Nessuno dice che in C vietato usare variabili non inizializzate, per cui non un errore. tuttavia un warning grave.

linoma
11-05-2010, 21:09
Tuttavia il programma non ti funziona. Ha qualche errore?

Loading