Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] GCC Warning: uninitialized variable

    Ciao a tutti, ho una domanda: come mai in questo codice (x è volutamente non inizializzata)

    codice:
    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:

    codice:
    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

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Con Visual C++ il warning c'è in tutti e due i casi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Io avrei messo errore, evidentemente hai qualche opzione che dice di trattare l'errore cm warning.
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    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.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Tuttavia il programma non ti funziona. Ha qualche errore?
    Per gli Spartani e Sparta usa spartan Il mio github

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.