Arduino : dois-je utiliser const ou #define ?

Spécialité(s)


Résumé

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 #...

Cet article est réservé aux abonnés. Il vous reste 90% à découvrir.
S'abonner à Connect
  • 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
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous