Forum: Mikrocontroller und Digitale Elektronik C: Funktion mit #define als Platzhalter


von Hansen (Gast)


Lesenswert?

Hallo!

Sagt mal, spricht was dagegen, bei Pedas Tastenentprellung die Funktion 
zum abfragen der Tasten hinter einem #define zu implementieren? Ist doch 
reine Text-Ersetzung, oder?
1
#define BUTTON_PLUS_MINUS ( get_button_common (BUTTON_1 | BUTTON_2) )

von Thomas E. (thomase)


Lesenswert?

Hansen schrieb:
> Sagt mal, spricht was dagegen

Nein

Hansen schrieb:
> Ist doch reine Text-Ersetzung, oder?

Ja

mfg.

von Erich (Gast)


Lesenswert?

#define BUTTON_PLUS_MINUS ( get_button_common (BUTTON_1 | BUTTON_2) )
#define B_P_M BUTTON_PLUS_MINUS
#define B B_P_M

Durch #define macht man Code u.U. unlesbar.

von Hansen (Gast)


Lesenswert?

Erich schrieb:
> #define B B_P_M
>
> Durch #define macht man Code u.U. unlesbar.

Ja gut, aber das hab ich ja nicht gemacht. Ich denke, die Bezeichnung 
sagt eindeuting, dass Taste Plus und Minus gemeint ist. Außerdem gibt es 
ja auch noch Kommentare.

Klar kann ich meinen ganzen Quelltext auch mit #define durch 
nummerieren, dann isses "encrypted"

von Hansen (Gast)


Lesenswert?

Könnt ihr mir verraten, wie ich, wenn eine Zeile beim #define zu kurz 
ist, das #define in der zweiten weiterschreiben kann? Bei Funktionen 
geht es ja ohne Probleme, wieso bei #define nicht?

von Hansen (Gast)


Lesenswert?

Ah...  "\"

von Johnny B. (johnnyb)


Lesenswert?

Nimm Defines heran, wenn es Sinn macht. Bei Deinem Eingangsposting sehe 
ich den Sinn nicht so ganz!
Es macht den Code momentan für Dich vielleicht lesbarer, aber guck Dir 
den eigenen Code in einem Jahr nochmals an... Du wirst Dich an das 
Define erst mal nicht mehr erinnern und Dir mühsam wieder alles 
zusammensuchen müssen.

Ich liebe auch Konstrukte, bei denen mit dem Preprocessor Strings 
zusammengesetzt und "Pseudofunktionen" gemacht werden.

z.B. sowas:
#define DAS_MACHT_SPASS(p, x) x ## p

...mag für Freaks ganz ok sein, aber ein durchschnittlicher 
C-Programmierer wird da erst mal ins Grübeln kommen.

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.