IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Utilisation d'une macro pour initialiser une structure


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Utilisation d'une macro pour initialiser une structure
    Bonjour,

    Voici mon problème: je souhaite utiliser une maccro pour initialiser une structure.

    Je m'explique, ci dessous le code qui initialise une structure de manière "classique":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    unsigned char Tableau_Vert[]={1,6,5};
    unsigned char Tableau_Rouge[]={5,8,10,14,22,2};
     
    typedef struct{
            unsigned char* pTableau;
            unsigned char TableauTaille;
            }Type_Tableau;
     
    Type_Tableau ListeTableaux[]={
                 {Tableau_Vert, (unsigned char)(sizeof(Tableau_Vert)/sizeof(unsigned char))},
                 {Tableau_Rouge, (unsigned char)(sizeof(Tableau_Rouge)/sizeof(unsigned char))},
                 };
    Ensuite j'utilise des maccros pour initialiser les champs de ma structure, ça devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #define MACCRO_1(couleur) (Tableau_##couleur)
    #define MACCRO_2(couleur) ((unsigned char)(sizeof(Tableau_##couleur)/sizeof(unsigned char)))
     
    Type_Tableau ListeTableaux[]={
                 {MACCRO_1(Vert), MACCRO_2(Vert)},
                 {MACCRO_1(Rouge), MACCRO_2(Rouge)},
                 };
    MACCRO_1 va initialiser le champs "pTableau" et MACCRO_2 le champs "TableauTaille".

    Jusque là tout va bien...
    Mais là où ça se complique c'est que je souhaite utiliser un seule maccro pour initialiser les 2 champs de ma structure...mais je sais pas faire :-(

    Je voudrais au final ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Type_Tableau ListeTableaux[]={
                 {MACCRO_3(Vert)},
                 {MACCRO_3(Rouge)},
                 };
    J'ai essayer de faire une maccro du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MACCRO_3(couleur) (MACCRO_1(couleur), MACCRO_2(couleur))
    Mais ça ne marche pas, a priori c'est la virgule qui pose problème...

    Des avis sur la question ?

  2. #2
    Membre éclairé
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Points : 742
    Points
    742
    Par défaut
    Bonjour,

    Citation Envoyé par titimartien Voir le message
    J'ai essayer de faire une maccro du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MACCRO_3(couleur) (MACCRO_1(couleur), MACCRO_2(couleur))
    Mais ça ne marche pas, a priori c'est la virgule qui pose problème...
    Non, ce sont les paranthèses de ta macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MACCRO_3(couleur)    MACCRO_1(couleur), MACCRO_2(couleur)
    Bonne continuation

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Un grand merci pour ta réponse, c'est parfait !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Une macro pour enregistrée une image d'un USF
    Par creolia dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2010, 08h33
  2. Réponses: 6
    Dernier message: 20/11/2009, 13h07
  3. Rédiger une macro pour sélectionner une zone d'impresion
    Par lenul78570 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/02/2009, 21h27
  4. [Macro] Une macro pour générer une autre macro
    Par green_fr dans le forum Macro
    Réponses: 2
    Dernier message: 13/01/2009, 11h59
  5. faire une condition pour arrêter une macro
    Par db48752b dans le forum Access
    Réponses: 11
    Dernier message: 21/09/2006, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo