Flags

Flags - C++ - Programmation

Marsh Posté le 06-01-2005 à 18:03:55    

Comment ça marche les flags ?
Merci  :jap:

Reply

Marsh Posté le 06-01-2005 à 18:03:55   

Reply

Marsh Posté le 06-01-2005 à 18:29:54    

Z3RgSp4wN a écrit :

Comment ça marche les flags ?
Merci  :jap:


 
Ouala une question qu'elle est bonne! ;)
Encore heureux que tu postes sous C++, ça donne une légère indication... ;)
Tu parles de quoi? des flags de compil?  

Reply

Marsh Posté le 06-01-2005 à 18:33:25    

les truc machin tu c avec les bits et tout pour faire des combinaisons binaires a passer en param ds une fonction
voi tu de koi je parle ?

Reply

Marsh Posté le 06-01-2005 à 18:34:36    

IWH


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 06-01-2005 à 18:36:47    

Ouep... c quoi exactement ta question alors?
 
Tu veux les utiliser? savoir comment les tester?

Reply

Marsh Posté le 06-01-2005 à 18:38:25    

Mouai je c pa du tt ce ke sa signifie
Jespere que c pas une insulte... =(
Tu peux maider stp ou pas ? Chui pas débutant mais j'ai d pure lacune

Reply

Marsh Posté le 06-01-2005 à 18:38:52    

ce ke c en faite

Reply

Marsh Posté le 06-01-2005 à 18:42:03    

flag c'est super vague...
ça regroupe un peu tout et n'importe quoi :spamafote:


---------------
Quizz'n'Blind pour tester vos connaissances
Reply

Marsh Posté le 06-01-2005 à 18:46:31    

Evite le style SMS s'il te plaît. Merci :)
 
Ensuite précise ta demande.

Reply

Marsh Posté le 06-01-2005 à 18:49:58    

Pas de problème (c'est un habitude) dsl !

Reply

Marsh Posté le 06-01-2005 à 18:49:58   

Reply

Marsh Posté le 06-01-2005 à 18:55:24    

En faite c'est bon j'ai trouver de la doc !
Merci à tous !

Reply

Marsh Posté le 06-01-2005 à 19:06:20    

tiens, ça me donne une idée, pour mon prochain pseudo, moi aussi je prendrais un symbole pas désembrouillé

Reply

Marsh Posté le 06-01-2005 à 19:08:26    

Qu'est ce qui l'a mon pseudo ? =(

Reply

Marsh Posté le 06-01-2005 à 19:09:15    

avec un peu d'expérience, tu lui trouveras une autre saveur

Reply

Marsh Posté le 06-01-2005 à 19:45:29    

Ca repond pas à ma question !

Reply

Marsh Posté le 07-01-2005 à 10:25:09    

Z3RgSp4wN a écrit :

Ca repond pas à ma question !


 
Bon alors je tente une tite explication de ce que je pense être la reponse à ce que je crois être ta question :D
 
En gros un flag ça sert à passer des 'options' par masque, je m'explique...
 
si tu dit que tu as une fonction avec 3 options eventuellement activables en même temps, tu peu definir (en C) :
 
const int OPTION_1 = 0x01; // ..001 en binaire
const int OPTION_2 = 0x02; // ..010 en binaire
const int OPTION_3 = 0x04; // ..100 en binaire
 
 
sit tu as une fonction toto qui prend un masque en paramètre du style:
 
void toto(int flag)
 
Suivant le flag tu peu faire des traitement en testant binairement :
 
if (flag & OPTION_1) {
 //Option 1 choisie
}
if (flag & OPTION_2) {
 //Option 2 choisie
}
 
Tu peux donc passer en paramètre plusieurs choix :
 
//ton code
int flags = OPTION_1 & OPTION_2;
toto(flags);
 
 
ouala... j'espère que j'ai un peu repondu à ta question...voir compris ta question... :D
 
 
PS: bien sûr en pratique j'utiliserais un #define pour les constantes mais c'est plus clair pour l'explication ;)

Reply

Marsh Posté le 07-01-2005 à 10:48:39    

//ton code
int flags = OPTION_1 & OPTION_2;  
 
intéressant ...

Reply

Marsh Posté le 07-01-2005 à 10:48:57    

et re Vive les enum bordel :o

Reply

Marsh Posté le 07-01-2005 à 10:51:24    

Taz a écrit :

et re Vive les enum bordel :o


 
Bo...faut rester généreux avec un code fait en buvant le café :D
 
C'est juste à titre indicatif, je suis même pas sûr du langage (C,C++,JAVA)... ;)
 
 

Reply

Marsh Posté le 07-01-2005 à 10:51:53    

Taz a écrit :

et re Vive les enum bordel :o


 
+1 pour moi, mais bon, ne compliquons pas.... ;)

Reply

Marsh Posté le 07-01-2005 à 11:01:03    

Therier: il me semble que le 'intéressant' de Taz n'était pas là pour faire joli et signalait que tu voulais sûrement plutôt écrire :
int flags = OPTION_1 + OPTION_2;
(du moins je suppose et je suis tout paré à aller me recoucher si nécéssaire ;) )
Edit: ou | d'ailleurs


Message édité par Tentacle le 07-01-2005 à 11:06:50
Reply

Marsh Posté le 07-01-2005 à 11:03:27    

perso j'utilise des macros
 
#define OPTION1 1
#define OPTION2 1<<1
#define OPTION3 1<<2
 
int flags=0;
 
//ajouter un flag
flags |= OPTION1;
 
//retirer un flag
flags &= ~OPTION2;
 
//tester un flag
if(flags & OPTION3)
{
 ...
 

Reply

Marsh Posté le 07-01-2005 à 11:11:24    

spokup a écrit :

perso j'utilise des macros
 
#define OPTION1 1
#define OPTION2 1<<1
#define OPTION3 1<<2
 
int flags=0;
 
//ajouter un flag
flags |= OPTION1;
 
//retirer un flag
flags &= ~OPTION2;
 
//tester un flag
if(flags & OPTION3)
{
 ...


 
bon déjà faut mettre des parenthèses :
#define OPTION2 (1<<2)
 
et puis les enum c'est plus adapté à mon avis

Reply

Marsh Posté le 07-01-2005 à 12:03:56    

oui, des enum par pitié

Reply

Marsh Posté le 07-01-2005 à 14:32:26    

Taz a écrit :

oui, des enum par pitié


 
toi, t'as des actions chez les fournisseurs d'enum ou quoi? ;)

Reply

Marsh Posté le 07-01-2005 à 16:39:19    

mouai et ça signifie koi ton ~ devant OPTION2 SomeBugsInMe ?
: heink :

Reply

Marsh Posté le 07-01-2005 à 17:32:34    

Z3RgSp4wN a écrit :

mouai et ça signifie koi ton ~ devant OPTION2 SomeBugsInMe ?
: heink :


 
 
en fait c'est spokup qui l'a mis :)
 
En tout cas, le ~ est l'opérateur NOT, qui inverse tous les bits.
 
Page explicative (en anglais) (merci Google):
http://www.cs.umd.edu/class/spring [...] twise.html
 
edit : lien en français:
http://homepage.mac.com/pierremous [...] .html#Bits


Message édité par SomeBugsInMe le 07-01-2005 à 17:37:46
Reply

Marsh Posté le 07-01-2005 à 19:26:44    

Je croyais que c'était l'opérateur '!' ...

Reply

Marsh Posté le 07-01-2005 à 19:31:15    

A bah non (je viens de verifier)
 ! inverse un bit
 ~ inverse tout les bits

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed