nathiara
Messages postés9Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention12 décembre 2007
-
11 déc. 2007 à 10:58
nathiara
Messages postés9Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention12 décembre 2007
-
12 déc. 2007 à 08:57
Bonjour, j'ai un soucis avec mes structures
EXT_AFFICHAGE typedef struct{
gchar Valeur[20];
int XT;
int YT;
char police[10];
int taille;
int gras;
int souligne;
int italic;
char couleur[7];
int digit;
} Var_Txt;
/* Construction d'une structure pour les icônes */
EXT_AFFICHAGE typedef struct{
gchar Nom[11];
int Variable;
int Var_type;
int X;
int Y;
Var_Txt Var_Texte;
} Icone;
Lorsque que je déclare des variables :
static int var_401 = 1,
var_301 = 1,
var_302 = 1,
var_312 = 0,
var_303 = 1,
var_222 = 1,
var_101 = 0,
var_103 = 1;
A la compilation gcc me met :
gcc `pkg-config --cflags gtk+-2.0` `xml2-config --cflags` -W -Wall -g -o affichage.o -c affichage.c
In file included from affichage.c:31:
affichage.h:87: erreur: un élément de l'initialisation n'est pas une constante
affichage.h:87: erreur: (near initialization for «icone_302.Variable")
affichage.h:87: attention : initialisation manquante
affichage.h:87: attention : (near initialization for «icone_302.Var_Texte")
affichage.h:88: erreur: un élément de l'initialisation n'est pas une constante
affichage.h:88: erreur: (near initialization for «icone_312.Variable")
affichage.h:88: attention : initialisation manquante
affichage.h:88: attention : (near initialization for «icone_312.Var_Texte")
affichage.h:89: erreur: un élément de l'initialisation n'est pas une constante
affichage.h:89: erreur: (near initialization for «icone_303.Variable")
affichage.h:89: attention : initialisation manquante
affichage.h:89: attention : (near initialization for «icone_303.Var_Texte")
affichage.h:90: erreur: un élément de l'initialisation n'est pas une constante
affichage.h:90: erreur: (near initialization for «icone_222.Variable")
affichage.h:90: attention : initialisation manquante
affichage.h:90: attention : (near initialization for «icone_222.Var_Texte")
affichage.h:91: erreur: un élément de l'initialisation n'est pas une constante
affichage.h:91: erreur: (near initialization for «icone_101.Variable")
affichage.h:91: attention : initialisation manquante
affichage.h:91: attention : (near initialization for «icone_101.Var_Texte")
affichage.h:92: erreur: un élément de l'initialisation n'est pas une constante
affichage.h:92: erreur: (near initialization for «icone_103.Variable")
affichage.h:92: erreur: un élément de l'initialisation n'est pas une constante
affichage.h:92: erreur: (near initialization for «icone_103.Var_Texte")
affichage.h:92: attention : initialisation manquante
affichage.h:92: attention : (near initialization for «icone_103.Var_Texte")
Par contre il est content si je fais :
#define var_103 1
#define var_101 0
#define var_222 1
#define var_303 1
#define var_312 0
#define var_302 1
#define var_301 1
??? Mais je veux que ce soient des variables!
Merci
Apres, il faut voir ce que tu souhaites faire.
Je me demande si tu ne voudrais pas que le champ variable de ta structure Icone ne change en même temps que ta variable var_xxx.
Si c'est le cas, utilise plutot des pointeurs.
Savon
int ma_variable;
ICONE ico = {... &ma_variable ...};
Je pense que ça ne devrait pas poser de souci. Pas de compilos sous la main pour tester si &ma_variable est constante, mais selon ma logique, ce devrait être le cas
Savon
nathiara
Messages postés9Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention12 décembre 2007 11 déc. 2007 à 16:13
En fait, je pense que je dois en dire plus : je ne suis pas sûre d'être bien partie.
Le but :
je doit partir de fichiers xml contenant la configuration des pages que j'ai à afficher (1 fichier xml par page) ex :
<titre></titre>
...
...
...
Je ne connais ni le nombre de pages ni le nombre d'icones par page, je doit sans doute utiliser des liste chaînées, mais j'avoue être un peu perdue entre les pointeurs et les listes chaînées.
Si qqn pouvais me donner un petit coup de pouce...
Vous n’avez pas trouvé la réponse que vous recherchez ?
nathiara
Messages postés9Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention12 décembre 2007 11 déc. 2007 à 16:49
Désolée j'ai envoyer le dernier message en ayant pas vu que tu m'avais répondu julienbj, merci, ça à l'air de fonctionner, mais j'ai d'autres erreurs qui apparaissent :
affichage.h:31: erreur: multiple storage classes in declaration specifiers
affichage.h:46: erreur: multiple storage classes in declaration specifiers
affichage.h:52: erreur: expected specifier-qualifier-list before «Var_Txt"
affichage.h:68: erreur: multiple storage classes in declaration specifiers
affichage.h:71: erreur: expected specifier-qualifier-list before «Icone"
affichage.h:83: erreur: multiple storage classes in declaration specifiers
affichage.h:83: attention : «var_401" initialized and declared «extern"
affichage.h:84: attention : «var_301" initialized and declared «extern"
affichage.h:85: attention : «var_302" initialized and declared «extern"
affichage.h:86: attention : «var_312" initialized and declared «extern"
affichage.h:87: attention : «var_303" initialized and declared «extern"
affichage.h:88: attention : «var_222" initialized and declared «extern"
affichage.h:89: attention : «var_101" initialized and declared «extern"
affichage.h:90: attention : «var_103" initialized and declared «extern"
affichage.h:92: erreur: multiple storage classes in declaration specifiers
affichage.h:92: erreur: expected «=", «,", «;", «asm" or «__attribute__" before «NO_Var_Text"
affichage.h:93: erreur: multiple storage classes in declaration specifiers
affichage.h:93: erreur: expected «=", «,", «;", «asm" or «__attribute__" before «Var_Text_103"
affichage.h:95: erreur: multiple storage classes in declaration specifiers
affichage.h:95: erreur: expected «=", «,", «;", «asm" or «__attribute__" before «icone_401"
affichage.h:95: erreur: expected identifier or «(" before «," token
affichage.h:96: erreur: expected identifier or «(" before «," token
affichage.h:97: erreur: expected identifier or «(" before «," token
affichage.h:98: erreur: expected identifier or «(" before «," token
affichage.h:99: erreur: expected identifier or «(" before «," token
affichage.h:100: erreur: expected identifier or «(" before «," token
affichage.h:101: erreur: expected identifier or «(" before «," token
affichage.h:104: erreur: multiple storage classes in declaration specifiers
affichage.h:104: erreur: expected «=", «,", «;", «asm" or «__attribute__" before «page_000"
affichage.h:117: erreur: expected declaration specifiers or «..." before «Icone"
affichage.h:123: erreur: expected declaration specifiers or «..." before «Var_Txt"
affichage.h:126: erreur: expected «)" before «pagex"
main.c: In function «main":
main.c:41: attention : passing argument 1 of «Init_affichage" makes integer from pointer without a cast
main.c:41: attention : passing argument 2 of «Init_affichage" from incompatible pointer type
main.c:42: attention : implicit declaration of function «Affiche_Page"
main.c:42: erreur: «page_000" undeclared (first use in this function)
main.c:42: erreur: (Each undeclared identifier is reported only once
main.c:42: erreur: for each function it appears in.)
make: *** [main.o] Erreur 1
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 11 déc. 2007 à 17:23
?
Typedef ne fait pas du tout d'allocation.
C'est un mot clef qui permet de redéfinir des types, il n'alloue rien du tout.
Je pense que tu avais un probleme d'include. Sinon, tu devais déclarer des variables globales en extern tout en leur affectant une valeur, ce qui est impossible.
Dans le code que tu as montré, il n'y a aucun externe de visibles, ou en as tu mis autrement?
Savon
nathiara
Messages postés9Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention12 décembre 2007 12 déc. 2007 à 08:57
Les extern se cachaient sous EXT_AFFICHAGE qui vaut null quand il est appelé par son correspondant .c et "extern" quand il est appelé par un autre fichier .c.