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.
Version imprimable
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
Merci...
Pense à marquer ton sujet résolu si c'est le cas.
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.Citation:
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 texteCitation:
Alors 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:#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