Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Pb Structures [ Divers / Débutant(e) ] (nathiara)

mardi 11 décembre 2007 à 10:58:11 | Pb Structures

nathiara

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;

  static Var_Txt  NO_Var_Text = { "0", 0,   0,  "0",     0,  0, 0, 0, "0000000", 0};
  static Var_Txt Var_Text_103 = {"72", 218, 22, "Arial", 20, 0, 0, 0, "#757575", 2 };

  static Icone icone_401 = {"I_401", 1, IMAGE, 4, 374, { "0", 0,   0,  "0",     0,  0, 0, 0, "0000000", 0}},
           icone_301 = {"I_301", 1, IMAGE, 110, 374, NO_Var_Text},
           icone_302 = {"I_302", var_302, IMAGE, 216, 374, NO_Var_Text},
           icone_312 = {"I_312", var_312, IMAGE, 322, 374, NO_Var_Text},
           icone_303 = {"I_303", var_303, IMAGE, 428, 374, NO_Var_Text},
           icone_222 = {"I_222", var_222, IMAGE, 534, 374, NO_Var_Text},
           icone_101 = {"I_101", var_101, IMAGE, 4, 3, NO_Var_Text},
           icone_103 = {"I_103", var_103, TEXT, 188, 3, Var_Text_103};

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

mardi 11 décembre 2007 à 12:03:08 | Re : Pb Structures

julienbj

Si tu veux que ce soit des araibles, tu ne peux pas les initialiser de la sorte.
Je te proposerai un mix de tes deux méthodes.

#define INIT_VAR103   1
static int var_103 = INIT_VAR103;
static Icone icone_103 = {... INIT_VAR103,...};

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.

--
Vive le C
Développeur hard/soft chez AGILiCOM
Savon

mardi 11 décembre 2007 à 14:36:52 | Re : Pb Structures

nathiara

Effectivement,  mon icone change selon la valeur de variable.

J'étudie la solution avec les pointeurs, mais je ne suis pas contre un petit coup de pouce!

mais merci pour ton aide julienbj.

mardi 11 décembre 2007 à 15:57:29 | Re : Pb Structures

julienbj

typedef struct icone
{
    ...
    unsigned int *variable;
    ....
} ICONE;

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

--
Vive le C
Développeur hard/soft chez AGILiCOM
Savon

mardi 11 décembre 2007 à 16:13:22 | Re : Pb Structures

nathiara

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 :
<page id="id">
    <titre></titre>
    <icone name="icone_103">
       ...
    </icone>
    <icone name="icone_104">
       ...
    </icone>
    ...
</page>
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...


mardi 11 décembre 2007 à 16:49:43 | Re : Pb Structures

nathiara

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


mardi 11 décembre 2007 à 17:05:52 | Re : Pb Structures

nathiara

C'est bon j'ai compris les dernières erreurs : typedef fait déjà de l'allocation de mémoire, il ne faut donc pas rajouter de extern ou autre!!

Merci pour ton aide, je regarde maintenant les listes chaînées.

mardi 11 décembre 2007 à 17:23:24 | Re : Pb Structures

julienbj

?
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?

--
Vive le C
Développeur hard/soft chez AGILiCOM
Savon

mercredi 12 décembre 2007 à 08:57:49 | Re : Pb Structures

nathiara

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.

Encore merci pour ton aide.



Cette discussion est classé dans : icone, erreur, var, affichage, initialisation


Répondre à ce message

Sujets en rapport avec ce message

Affichage d'icone [ par SMarmotte ] Bonjour à tous,j'aimerai afficher une icone 50x50 dans une fenêtre en utilisant GDI. Pour cela, je fait un LoadImage(...) et pour afficher mon icone j pb affichage icone [ par oliverman ] Je suis debutant en vc++, et je n'arrive pas a afficher une icone sur une boite de dialogue.Mon icone est dans mes ressources, et le but serait de l'a [debutant] erreur : Problème d'affichage [ par arwenita ] J'ai un erreur pour afficher une variable : error C2228: left of '.GetAdminPassword' must have class/struct/union typeJe ne comprends pas, ma fonc erreur icone visual C++ [ par crocblanc ] Bonjour!!!! Je suis en train de créer une application sur visual c++ express 2005 et j'ai voulu mettre une icone pour la fenetre principale à côté du Icones et service [ par albanovisch ] Bonjour, je cherche à savoir quel est le message envoyé par Windows pour indiquer qu'un utilisateur c'est logé sur le poste.Voila j'ai déclaré un serv Sous Vista, CFtpConnection::GetFile() retourne l'erreur 12003 [ par manumalo ] Bonjour,J'ai un problème aléatoire sous Vista (mon programme a été crée avec VS C++ 6, sous XP) :Parfois (et souvent), CFtpConnection::GetFile() retou Erreur de compilation dans le fichier winnt.h [ par eagleseyes ] SalutJe viens juste de commencer la programmation DirectX avec VSC++ et quand je veux compiler le 1er exemple de DirectX SDK, j'ai l'erreur suivante:c Communication Série RS232 - Pb d'affichage de caractères [ par bracqjean ] Bonjour,Je suis débutant en C. J'ai besoin de transmettre des données sur le port COM d'un PC, à destination d'un variateur. Le but est d'envoyer une Affichage Multilignes sur Bouton [ par cartes1 ] BonjourSerait-il possible d'afficher plusieurs lignes sur un bouton créé avec "CreateWindow(.....)" avec l'option BS_OWNERDRAW sous Visual 6 C++ sans Erreur, besoin d'aide [ par mafio31 ] Voici mon problème: lors de la compilation, je n'est pas d'erreur, mais quand je lance le débugueur, l'application se lance, puis se refermer, avec ce


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,920 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.