Errore struct durante la compilazione

di il
7 risposte

Errore struct durante la compilazione

Buongiorno,
riscontro il seguente problema durante la compilazione di un progetto che sto sviluppando:
main.c|44|error: initializer element is not constant|
Il codice sorgente in questione é il seguente:
time_t t = time(NULL);
struct tm tm = *localtime(&t);
ed é posizionato fuori il mail e qualsiasi altra funzione poiché vorrei che sia accessibile da tutte le funzioni, in quanto utilizzo i dati proventi da questa struct per scrivere dei log su un file di testo.

Se posizionata dentro la funzione main ad esempio, durante la compilazione non produce errori.

Grazie in anticipo per l'aiuto

7 Risposte

  • Re: Errore struct durante la compilazione

    La metti furori dal main ma la inizializzi (assegnando il valore) nel main.
  • Re: Errore struct durante la compilazione

    Grazie per il suggerimento.
    Verifico
  • Re: Errore struct durante la compilazione

    Ciao @oregon,
    nel mio codice sorgente ho questa situazione:

    
    
    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    
    int main()
    {
        int scelta;
        char mex[60];
       
          sprintf(mex,"Inizio: %d-%d-%d %d:%d:%d\n",tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
        //system("pause");
    
        ScritturaLog(mex); //richiamo funzione per scrittura log
        ...
      }
    
    Devo quindi indicare tm.tm_year ad esempio fuori la funzione main?
    Personalmente non mi sembra di aver inizializzato tm.tm_year, tm.tm_mon... nel main, ma fuori in quanto sono collegate "time_t t=time(NULL);".

    Grazie del tuo aiuto e buona pasqua!
  • Re: Errore struct durante la compilazione

    
    time_t t;
    struct tm tm;
    
    int main()
    {
    t = time(NULL);
    tm = *localtime(&t);
    

    Buona Pasqua
  • Re: Errore struct durante la compilazione

    Grazie per l'aiuto.
    La mia esigenza sarebbe però che tale dato sia accessibile a livello globale in tutto il mio codice, in quanto il mio obbiettivo sarebbe quello di utilizzare queste informazioni in merito all'orario per scrivere dei log.

    Adesso, grazie al tuo suggerimento, dichiaro fuori dalla funzione main ed le inizializzo dentro.

    Grazie in anticipo
  • Re: Errore struct durante la compilazione

    In altri moduli dichiari le variabili extern
  • Re: Errore struct durante la compilazione

    Grazie per i suggerimenti!
Devi accedere o registrarti per scrivere nel forum
7 risposte