Frage von DunKing623, 24

Kann ich in C ein Makro definieren in dem ich eine Fallunterscheidung habe?

Also sowas in der Art: #define MAKRO(x) -> 1 if x <6, 0 if x>6 ? Das Makro soll 1 oder 0 sein, je nach dem was x ist.

Antwort
von PerfectMuffin, 24

Ternärer Operator.

http://www.icp.uni-stuttgart.de/~hilfer/lehre/100-online/skriptum/html_book00/no...

Kommentar von PWolff ,

Sowie http://www.c-howto.de/tutorial-praeprozessor-makros.html

Denk dran, dass ein C-Makro ein rein textbasiertes Suchen-und-Ersetzen ist (wenn auch ein sehr ausgefeiltes, ähnlich wie mit Regulären Ausdrücken), und du um möglichst alles, auch und besonders um Variablennamen, Klammern setzen solltest.

Kommentar von PerfectMuffin ,

Ich verstehe gar nicht, warum nur C diese Makros hat. Die sind verdammt praktisch, man kann sie sogar für Textbearbeitung nutzen.

Antwort
von Mikkey, 21

#define MAKRO(x) (x<6?0:1)

Antwort
von Roderic, 22

Und woher soll der Compiler wissen, welchen Wert x hat?

Kommentar von PerfectMuffin ,

Makros werden vom Präprozessor bearbeitet, nicht vom Compiler.

Kommentar von Roderic ,

Das läuft aufs gleiche hinaus. Woher soll der Präprozessor den Wert von x wissen?

Kommentar von PerfectMuffin ,

X ist nur ein Platzhalter.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten