begin process at 2012 02 12 13:45:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Pb Structures


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb Structures

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ée 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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales