J'obtiens une erreur à la ligne 6 (initialiser my_foo à foo_init) du programme suivant et je ne suis pas sûr de comprendre pourquoi.
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;
}
Gardez à l'esprit que c'est une version simplifiée d'un grand, multi-fichier de projet, je travaille sur. Le but était d'avoir une seule constante dans l'objet du fichier, plusieurs fichiers peuvent utiliser pour initialiser une structure de l'etat. Puisque c'est une cible embarquée avec des ressources limitées et la structure n'est pas que les petits, je ne veux pas de copies multiples de la source. Je préfère ne pas l'utiliser:
#define foo_init { 1, 2, 3 }
J'essaie aussi d'écrire du code portable, j'ai donc besoin d'une solution valide C89 ou C99.
Est-ce que avez à faire avec les ORGs dans un fichier de l'objet? Qui a initialisé les variables d'aller dans l'un et ORG sont initialisés en copiant le contenu d'un deuxième ORG?
Je vais peut-être juste besoin de changer ma tactique, et ont une initialisation de la fonction de faire toutes les copies au démarrage. Sauf si il y a d'autres idées?