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 :

préprocesseur : directives imbriquées


Sujet :

C

  1. #1
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut préprocesseur : directives imbriquées
    Bonjour,

    J'ai un #define qui vaut 1 à 10
    Je veux concaténer ce nombre avec du texte.
    Voici ce que j'ai écrit (et ça marche) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #define N 1 
    #if N==1
    	#define MESSAGE Message1
    #elif N==2
    	#define MESSAGE Message2
    // Etc jusqu'à 10
    #endif
    J'avais essayé ça avant, mais ça ne marchait pas. Dans la deuxième ligne, N n'est pas reconnu comme une macro, et MESSAGE est toujours développé en MessageN. Ets-ce qu'il y a quand même une manière de faire du code un peu compact comme celui ci-dessous, ou bien dois-je me résoudre à la diarrhée ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define N 1
    #define MESSAGE Message##N
    Pas davantage de succès comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MESSAGE(X) Message##X

  2. #2
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    Il me semble qu'il faut faire un truck comme ça

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define MKSTR(s) #s
    #define MESSAGE(x) MKSTR(Message ## x)

Discussions similaires

  1. Directives du préprocesseur
    Par edgarjacobs dans le forum Débuter
    Réponses: 9
    Dernier message: 12/05/2012, 12h26
  2. Réponses: 13
    Dernier message: 02/08/2009, 19h06
  3. [C de base] Directive Préprocesseur
    Par Altrensa dans le forum Débuter
    Réponses: 5
    Dernier message: 19/10/2008, 02h09
  4. Directive préprocesseur #define
    Par Altrensa dans le forum C
    Réponses: 12
    Dernier message: 29/11/2007, 17h53
  5. Réponses: 6
    Dernier message: 19/02/2007, 11h13

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