Was ' ist der Unterschied zwischen #define und const int beim Deklarieren eines Pins? [duplizieren]

Diese Frage hat hier bereits Antworten :

Kommentare

  • Ich denke, Sie meinen #define anstelle von #include. Die professionellere Methode zum Deklarieren von Pins ist const int myPin = ... Dies hilft dem Compiler zu verstehen, dass es sich um einen konstanten Wert handelt und kein Speicher erforderlich ist. Dies ist etwas besser als #define, da es die Kompilierungsinformationen über den Datentyp liefert.
  • @MikaelPatel genau … also im Grunde die int Methode ist besser, oder?
  • Ja. Bitte aktualisieren Sie den Titel und entfernen Sie " include ". Das ist etwas völlig anderes und nicht verwandtes 🙂
  • Normalerweise bevorzuge ich die Verwendung von enum für Ganzzahl- oder Zeichenkonstanten anstelle von #define oder const int. Siehe akzeptierte Antwort auf Ist es besser, #define oder const int für Konstanten zu verwenden? ,

Antwort

„#define“ ist eine Präprozessoranweisung. Es definiert eine Beschriftung und einen Wert, die im vorverarbeiteten Quellcode an derselben Stelle jedes Auftretens des Etiketts positioniert werden. Da kein Typ definiert ist, handelt es sich um eine einfache und dumme Ersetzung von Zeichenfolgen vor dem Kompilieren. Dies kann dann zu Fehlern oder Missverständnissen beim Kompilieren führen.

„const int xxx“ definiert einen Typ und sperrt den Wert dieser Instanz. Die Verwendung dieser Methode ist sicherer. Der Compiler kann nach Tippfehlern suchen und Nachrichten auslösen (oder die Kompilierung unterbrechen), wenn Sie einen Fehler gemacht haben.

Beispiel:

#define A 5 int dummy_integer = A 

… wird vorverarbeitet als …

int dummy_integer = 5 

… und der Compiler liest diese Anweisung.

Wenn ich mich jedoch gut erinnere, können Sie eine Präprozessor-Direktive immer wie folgt überschreiben:

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

Das ist nicht gut. Wenn Sie stattdessen den Modifikator „const“ verwenden, können Sie weder den Wert (noch den Typ) einer Variablen ändern (und daher ist sie als „Konstante“ definiert).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.