Über #define

Gast #889327
Lesenswert?

Vielen Dank für deine Erklärung. Kannst Du vieleicht die Code noch 
einmal erzählen?

#ifndef V_MEMRAM0
# define V_MEMRAM0
#endif

#ifndef V_MEMRAM0
# define V_MEMRAM0
#endif

#ifndef V_MEMRAM0
# define V_MEMRAM0
#endif

V_MEMRAM0 extern V_MEMRAM1 _c_SlaveResp_buf V_MEMRAM2 SlaveResp;
#889383
Lesenswert?

Nicht wirklich. Hauptsächlich deshalb, weil du beim
abschreiben Fehler gemacht hast :-)

Aber ganz im Ernst, so schwer ist das wirklich nicht.

#define xyz abc

legt fest, dass in Folge der Text 'xyz' durch den Text 'abc'
zu ersetzen ist. ('abc' kann durchaus auch ein leerer Text
sein, so wie in
#define xyz
Damit teilt man dem Präprozessor mit, er möge den Text xyz durch
einen leeren Text ersetzen. Aus
#dfine xyz
xyz int MyVar;
wird so der Programmtext
int MyVar;
)

Mittels

#ifdef abc
   .... mach was
#endif

kann man auch Abfragen darüber machen, ob eine Textersetzung für den
Text 'abc' definiert wurde. Nur dann wenn es eine solche Textersetzung
gibt, wird der Teil .... mach was in den Programmtext inkludiert.

Jetzt kannst du dir selbst zusammenreimen, was der ursprüngliche
(richtige) Programmcode in deinem Programm macht.

Im übrigen empfehle ich das Studium eines C-Grundlagenbuches.
Eine Sprache wie C kann man nicht durch Versuch und Irrtum
erlernen und ein Forum ist nun mal kein Ersatz für fehlende
Literatur, in der die Kentnisse systematisch und vollständig
aufgebaut werden.

http://www.mikrocontroller.net/articles/C-Pr%C3%A4prozessor

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren