frage zu makro

Moderator: Moderatoren

Antworten
Benutzeravatar
beafraid88
Beiträge: 99
Registriert: Sa 25. Okt 2008, 17:34
Wohnort: Aachen/Düsseldorf/Mönchengladbach

frage zu makro

Beitrag von beafraid88 » Do 17. Feb 2011, 19:10

hey leute,
lernen ist grad auf hochtouren :P

hier eine aufgabe :

Definieren Sie ein Makro namens is neg, das eine Zahl als Argument erhält und
1 zurückgibt, falls die Zahl negativ ist und ansonsten 0 zurückgibt.

heisst es:

#define is_neg(int z) (z<0) ? 1 : 0
oder
#define is_neg(z) (z<0) ? 1 : 0

bob10
Beiträge: 414
Registriert: So 1. Feb 2009, 19:34

Re: frage zu makro

Beitrag von bob10 » Do 17. Feb 2011, 19:14

Tipp doch mal beides in eine .c Datei und kompilier es.
Bei einem von beiden wird der Compiler sich beschweren.

Tipp: Makros sind keine Funktionen!

Bong91
Beiträge: 22
Registriert: Do 20. Jan 2011, 14:49

Re: frage zu makro

Beitrag von Bong91 » Do 17. Feb 2011, 21:12

#define is_neg(z) (z<0) ? 1 : 0

das funktioniert auf jedenfall. ob (int z) da beim makro funktioniert, keine ahnung

bob10
Beiträge: 414
Registriert: So 1. Feb 2009, 19:34

Re: frage zu makro

Beitrag von bob10 » Fr 18. Feb 2011, 08:51

Bong91 hat geschrieben:ob (int z) da beim makro funktioniert, keine ahnung
Das funktioniert nicht, da die Makros vom Präprozessor abgehandelt werden (also keine Funktion sind, die einen Datentyp für ihre Parameter/Rückgabewerte benötigt) und der keine Ahnung von int, char, double, etc. hat.
Der setzt einfach an jeder Stelle wo im Quellcode "is_neg(z)" steht "(z<0) ? 1 : 0" ein, egal welchen Datentyp "z" hat.

Antworten

Zurück zu „Info I“