#define in einer Funktion für Anweisungsblock verwenden?

OP #2358511
Lesenswert?

Guten Abend zusammen,

könnt ihr mir bitte sagen, ob das geht am Anfang der Funktion einen 
Block menue1 zu definieren, der dann später immer bei Bedarf aufgerufen 
wird.
so wie weiter unten im Bild, da wird menue1 aufgerufen.

bei mir im Programm wird dieser Block menue1 schon mit der #define 
anweisung ausgeführt.

ist das richtig?
ich hätte gedacht dort werden diese Anweisungen noch nicht ausgeführt, 
erst später bei einem Aufruf von menue1.


Vielen Dank im Vorraus für Eure Hilfe.

Viele Grüße,

Matthias.
Angehängte Dateien:
#2358532
Lesenswert?

Prinzipiell kannst du ein #define an irgendeiner Stelle im Programm 
schreiben; es wirkt sich maximal auf den Rest des kompilierten 
Quelltextes aus.

In aller Regel ist es aber Quark, es nicht ziemlich weit oben im 
Quelltext zu schreiben.

Insbesondere musst du erst verstehen, daß das #define nicht wie 
sonstiger Quelltext behandelt wird, der ja Blockstruktur, Funktionen 
etc. hat.

Weiterhin definierst du mit deinem #define keinen Block, sondern nur das 
Makro mit dem Namen menue1 ohne jeden Inhalt.
Der folgende Block gehört schon nicht mehr zum Makro.

-> Mal ein gutes C-Buch lesen könnte helfen.
Und nein, es macht keinen Sinn, sich die Sprache C hier stückweise 
erklären zu lassen.
#2358533
Lesenswert?

Schlag in deinem C-Buch nach, wie man ein #define über mehrere Zeilen 
macht.

Allerdings ...
> könnt ihr mir bitte sagen, ob das geht am Anfang der Funktion einen
> Block menue1 zu definieren, der dann später immer bei Bedarf aufgerufen
> wird.
... macht man so was nicht über ein #define, sondern über eine weitere 
Funktion.
OP #2358562
Lesenswert?

Klaus Wachtler schrieb:
> Prinzipiell kannst du ein #define an irgendeiner Stelle im Programm
> schreiben; es wirkt sich maximal auf den Rest des kompilierten
> Quelltextes aus.
>
> In aller Regel ist es aber Quark, es nicht ziemlich weit oben im
> Quelltext zu schreiben.
>
> Insbesondere musst du erst verstehen, daß das #define nicht wie
> sonstiger Quelltext behandelt wird, der ja Blockstruktur, Funktionen
> etc. hat.
>
> Weiterhin definierst du mit deinem #define keinen Block, sondern nur das
> Makro mit dem Namen menue1 ohne jeden Inhalt.
> Der folgende Block gehört schon nicht mehr zum Makro.
>
> -> Mal ein gutes C-Buch lesen könnte helfen.
> Und nein, es macht keinen Sinn, sich die Sprache C hier stückweise
> erklären zu lassen.

Hallo,

danke für Deine Antwort.

Ja, ich wollte wohl ein Makro schreiben, dass ich innerhalb einer 
Funktion immer wieder aufrufen kann. Dieses soll nur in der Funktion 
gültig sein, deswegen wollte ich es hier definieren.

Makro, das ist wohl der richtige Hinweis wonach ich im C-Buch suchen 
muss.

Diese Hilfe habe ich gebraucht und soll auch reichen.

Viele Dank und viele Grüße,

Matthias.

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