Unterschied zwischen const und #define
-
Ich such den Unterschied zwischen const und #define
Ok, ich weis das eine ist ne Präprozessoranweisung, das andere ne Variable, aber was heist das für mein Programm? Was ist schneller, was erzeugt mehr code und was bruaucht nahher mehr RAM?
Hab mich wohl erst im Forum vertan... hoffentlich bin ich nun hier richtig
-
LOL. Ich hab dir doch grad in ANSI C geantwortet: http://www.c-plusplus.net/forum/viewtopic.php?t=101035
-
Variablen beanspruchen Speicher.
Defines sind einfach ersetzungen des Precompilers im QuellText.Aber: Wenn der Wert der Variablen schon feststeht, und sie nicht volatile gekennzeichnet ist, wird ein optimierender Compiler die Variable beim Auslesen eh durch ein "richtige" Zahl ersetzen.
-
Ja sorry, war erst im falschen Forum, s.o.:
Hans0815 schrieb:
Hab mich wohl erst im Forum vertan... hoffentlich bin ich nun hier richtig
Vielleicht etwas hintergrund:
ich habe eine ser rechenintensive Routine, und darin sind "Konstanten" eigentlich wär's ja schön wenn es variablen währen geht aber net (geschwindigkeit und speicherreservierung) was ist nun das bessere?
-
SeppSchrot schrieb:
und sie nicht volatile gekennzeichnet ist
Ist volatile const erlaubt?
-
Hans0815 schrieb:
was ist nun das bessere?
Ich habs dir doch schon gesagt:
Michael E. schrieb:
Wenn du dich im Forum vertan hast und C++ programmierst, dann nimm immer const. Wenn du C programmierst, nimm #define, weil C kein const kennt.
[EDIT] Kleine Korrektur: Nimm in C++ wann immer möglich const.
-
Michael E. schrieb:
SeppSchrot schrieb:
und sie nicht volatile gekennzeichnet ist
Ist volatile const erlaubt?
Ja.
volatile const int x = 9; // x kann jetzt zwar nicht durch das Programm selbst, jedoch durch ein Ereignis von ausserhalb (z.B. Hardware) verändert werden.
Caipi
-
@Hans0815
Für Konstanten nimmst du in C++ einfach const. So einfach ist das. Warum? Nun, define hat gegenüber const keine Vorteile, nur Nachteile.
Für mehr Infos würde ich dir die Forensuche empfehlen, da es darüber schon einige Diskussionen gab.