Ce que soit dans les bibliothèques ou dans les croquis partagés entre amateurs du domaine, lorsqu'il s'agit de définir une valeur invariable, deux solutions s'offrent à vous : utiliser #define pour définir une macro ou déclarer une variable avec la directive const comme « constante ». Quelle solution choisir ? L'une est elle meilleure que l'autre ? La réponse est simple... Ça dépend.
Voici ce qu'on appelle une « réponse de Normand ». Notez au passage que l'expression semble provenir d'une ancienne loi normande offrant une possibilité de rétractation sur un jour à compter de la signature d'un accord marchand. Personnellement, je préfère la déclinaison anglaise de l'expression, « une réponse de politicien », qui a le mérite de ne pas être péjorative, mais tout simplement pragmatique...
Mais revenons à nos moutons (non, je ne vous ferai pas le coup deux fois) : #define ou const ? Pour répondre à cette question, la première chose à faire est de savoir de quoi on parle.
1. #define
Cette instruction ne concerne pas le compilateur qui va transformer le code que vous écrivez en une série d'instructions en langage machine pour le processeur. Celle-ci est traitée par le préprocesseur C qui opère avant la compilation. Ce préprocesseur gère également les autres directives débutant par #...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première