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 :

que veut dire ce code #define


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 90
    Points : 55
    Points
    55
    Par défaut que veut dire ce code #define
    Bonjour,
    j'ai encore un souci avec un code que j'ai repris je ne comprends pas ce que cella veut dire ?
    voila le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    typedef long Coord2i; // ça c ok 
     
    #define COORD2I_DECLARE_EXTRACT(var, theValue) \
    	Coord2i var = theValue; \
    	Coord var##X = GetFirst(var); \
    	Coord var##Y = CoordUtils::GetSecond(var);
    je vous remercie d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Points : 719
    Points
    719
    Par défaut
    Cette macro va transformer un code similaire à :
    COORD2I_DECLARE_EXTRACT(c,32)

    en qqchose comme ça :
    Coord2i c = 32;
    Coord cX = GetFirst(c);
    Coord cY = CoordUtils::GetSecond(c);

    Tu dois pouvoir en déduire la signification, puisque Coord2i et Coord et CoordUtils doivent être des symboles que vous utilisez dans ton projet.

    Edit : Ce qui définit probablement une façon d'extraire deux coordonnées (X et Y) chacune sur 16 bits depuis un mot 32bits. Et c'est une façon très complexe de faire cette opération, à mon humble avis.

    Encore un Edit : Ce qui peut troubler, c'est la présence d'un ## dans le define. C'est une construction qui te permet de concaténer deux symboles. Du style : #define MAKE_SYMBOL(part1,part2) part1##part2
    te permet de faire un seul mot de ces deux parties.
    Les \ dans la macro te permettent d'aller à la ligne, sans que le compilateur le voit comme une erreur (pour lui, ce qui suit le \ est sur la même ligne que ce qui le précède).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 90
    Points : 55
    Points
    55
    Par défaut
    Merci beaucoup pour cette réponse très pertinente effectivement Coord2i et Coord et CoordUtils sont des éléments que je connais;

    merci beaucoup

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

Discussions similaires

  1. Débutant Que veut dire le code 200=""
    Par JB122 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/07/2015, 13h36
  2. Que veut dire le code : Si (1=2) ?
    Par Gulien dans le forum 4D
    Réponses: 2
    Dernier message: 12/11/2007, 15h12
  3. [WD9] Que veut dire AGL?
    Par afrikha dans le forum WinDev
    Réponses: 4
    Dernier message: 24/10/2005, 11h15
  4. Que veut dire ce symbole?
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 24/06/2005, 22h25
  5. Que veut dire "volatile" devant une variable ?
    Par altahir007 dans le forum C
    Réponses: 4
    Dernier message: 23/06/2004, 15h47

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