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.
Snoop
<< 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
Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
Mon blog : pragmateek.com
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
Publication : Concepts en C
Mon avatar : Glenn Gould
--------------------------------------------------------------------------
Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager