Quelle ' est la différence entre #define et const int lors de la déclaration dune broche? [dupliquer]

Cette question a déjà des réponses ici :

Commentaires

  • Je suppose que vous voulez dire #define au lieu de #include. La manière la plus professionnelle de déclarer les broches est const int myPin = ... Cela aide le compilateur à comprendre quil sagit dune valeur constante et que le stockage nest pas nécessaire. Cest légèrement mieux que #define car il donne les informations de compilation sur le type de données.
  • @MikaelPatel exactement … donc fondamentalement le int est préférable, non?
  • Oui. Veuillez mettre à jour le titre et supprimer " include ". Cest quelque chose de totalement différent et non lié 🙂
  • Je préfère généralement utiliser enum pour les constantes dentiers ou de caractères plutôt que #define ou const int. Voir la réponse acceptée à Vaut-il mieux utiliser #define ou const int pour les constantes? ,

Réponse

« #define » est une directive de préprocesseur. Il définit une étiquette et une valeur, qui seront positionnées dans le code source pré-traité au même endroit de chaque occurrence de létiquette. Aucun type nest défini, il sagit donc dune substitution basique et stupide de chaînes avant la compilation. Cela peut alors conduire à des erreurs ou des malentendus lors de la compilation.

« const int xxx » définit un type et verrouille la valeur de cette instance. Il est plus sûr dutiliser cette méthode. Le compilateur peut vérifier les erreurs de type et lancer des messages (ou interrompre la compilation) si vous avez fait une erreur.

Exemple:

#define A 5 int dummy_integer = A 

… sera prétraité comme …

int dummy_integer = 5 

… et le compilateur lira cette instruction.

Cependant, si je me souviens bien, vous pouvez toujours écraser une directive de préprocesseur comme suit:

#define A 5 int dummy_integer = A //some code here #undef A #define A "my_string" std::cout << A 

Ce nest pas bon. En utilisant le modificateur « const », à la place, vous ne pouvez pas « changer la valeur (ni le type) dune variable (et donc elle » est définie comme « constante »).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *