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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    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 chevronné

    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
    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)
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

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