Forum: Mikrocontroller und Digitale Elektronik #define in einer Funktion für Anweisungsblock verwenden?


von Matthias H. (maethes26)


Angehängte Dateien:

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.

von Klaus W. (mfgkw)


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.

von Stefan E. (sternst)


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.

von Klaus W. (mfgkw)


Lesenswert?

ach ja, Quelltext als Bild hier einzufügen ist unsinnig.
Kostet nur Platz und kann nicht als Text kopiert werden.

von Matthias H. (maethes26)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.