Bonjour,
Je debute en c++ et j'aimerai avoir une explication sur une ligne de code qui est la suivante :
#define fontI (1 << 6)
Alors define permet de définir une constante pour le préprocesseur mais que signifie : (1 << 6) ?
Merci.
Bonjour,
Je debute en c++ et j'aimerai avoir une explication sur une ligne de code qui est la suivante :
#define fontI (1 << 6)
Alors define permet de définir une constante pour le préprocesseur mais que signifie : (1 << 6) ?
Merci.
<< est l'opérateur de shift binaire en C (et C++). Cette page donne une petite explication : http://www.space.unibe.ch/comp_doc/c...ift.html#shift
Si je compte bien, dans ton cas :
1 = 00000001
1<<6 = 01000000 , ce qui donne 64
Pense à marquer ton sujet résolu si c'est le cas.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
A ne pas confondre avec les opérateurs de gestion de flux.
On peut aussi faire des macros, les constantes étant des macros d'arité 0, pas d'argument.Alors define permet de définir une constante pour le préprocesseur
snoop
#define est souvent utilisé pour donner un nom symbolique à des constantes, mais le mécanisme sous jacent pour le faire est simplement un remplacement de texteAlors define permet de définir une constante pour le préprocesseur mais que signifie : (1 << 6) ?
A chaque fois que dans le code source on trouve la chaîne fontI, elle est remplacée par la chaîne (1 << 6).
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define fontI (1 << 6)
L'utilisation de #define est très commode mais peut induire des erreurs difficiles à situer. Son utilisation demande certaines précautions (comme ici la mise entre parenthèses de 1 << 6)
Les remarques de seriousme sont tout à fait pertinentes
Partager