Go Down

Topic: analogRead (Read 718 times) previous topic - next topic

voithian

#5
Feb 11, 2013, 12:27 pm Last Edit: Feb 11, 2013, 12:35 pm by voithian Reason: 1

Wo ist eigendlich der Unterschied zwischen const und #define?

Mit

Code: [Select]
const uint8_t A0 = 14;    // Beipiel aus pins_arduino.h

wird eine (konstante) Variable angelegt, die den Wert 14 hat.

Klasse Ausdruck, oder? "Konstante Variable". D.h. sie kann nach der Initialisierung mit dem Wert 14 nicht mehr verändert werden, aber wie jede andere Variable gelesen werden.

Mit

Code: [Select]
#define A0  14

wird vom Präprozessor des C-Compilers ein Text-Ersatz durchgeführt (also im Programmcode überall A0 durch 14 ersetzt) und dann der Programmcode mit den durchgeführten Textersetzungen an die nächste Stufe des Compilers weitergegeben.




omthomas

Hallo zusammen,

DANKE für die Erläuterungen!

gruß
omthomas

michael_x

Quote
Wo ist eigendlich der Unterschied zwischen const und #define?

Ein kleiner Nachtrag:
Bei const definierst du auch einen Datentyp,
const ist also von der Programm-Klarheit her eigentlich besser ( wenn du den richtigen Datentyp, statt einfach "int" verwendest ).

Wenn alles richtig läuft, macht es keinen großen Unterschied. Der Compiler legt oft für const keine "echten" Variablen in RAM an, sondern optimiert das.
Im Fehlerfall bekommst du andere Meldungen ;)



fckw

ok, jetzt wird einiges Verständlicher, auch ich danke euch :-)

Go Up