Viene visualizzato un errore sulla riga 6 (inizializza my_foo su foo_init) del seguente programma e non sono sicuro di capire il perché.
typedef struct foo_t {
int a, b, c;
} foo_t;
const foo_t foo_init = { 1, 2, 3 };
foo_t my_foo = foo_init;
int main()
{
return 0;
}
Tieni presente che questa è una versione semplificata di un progetto più ampio e multi-file su cui sto lavorando. L'obiettivo era di avere una singola costante nel file oggetto, che più file potessero utilizzare per inizializzare una struttura di stato. Dal momento che è un obiettivo incorporato con risorse limitate e la struttura non è così piccola, non voglio più copie della fonte. Preferirei non usare:
#define foo_init { 1, 2, 3 }
Sto anche cercando di scrivere codice portatile, quindi ho bisogno di una soluzione valida C89 o C99.
Questo ha a che fare con gli ORG in un file oggetto? Che le variabili inizializzate vanno in un ORG e vengono inizializzate copiando il contenuto di un secondo ORG?
Forse dovrò solo cambiare la mia tattica e avere una funzione di inizializzazione per fare tutte le copie all'avvio. A meno che non ci siano altre idee là fuori?