Précédent   Forum des professionnels en informatique > C et C++ > C++
C++ Forum d'entraide technique sur le langage C++. Avant de poster -> F.A.Q C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 12h20   #1
Futur Membre du Club
 
Inscription : mai 2009
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 79
Points : 18
Points : 18
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 :
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
pitichamo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h49   #2
Membre confirmé
 
Inscription : décembre 2010
Messages : 99
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 99
Points : 203
Points : 203
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).
phi1981 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/02/2012, 15h05   #3
Futur Membre du Club
 
Inscription : mai 2009
Messages : 79
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 79
Points : 18
Points : 18
Merci beaucoup pour cette réponse très pertinente effectivement Coord2i et Coord et CoordUtils sont des éléments que je connais;

merci beaucoup
pitichamo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h30.


 
 
 
 
Partenaires

Hébergement Web