Errore struct durante la compilazione

di Anonimizzato16614 il
7 risposte
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

  • La metti furori dal main ma la inizializzi (assegnando il valore) nel main.
  • Grazie per il suggerimento.
    Verifico
  • 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!
  • 
    time_t t;
    struct tm tm;
    
    int main()
    {
    t = time(NULL);
    tm = *localtime(&t);
    

    Buona Pasqua
  • 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
  • In altri moduli dichiari le variabili extern
  • Grazie per i suggerimenti!
Devi accedere o registrarti per scrivere nel forum
7 risposte