Gast
#1653932
Hi, ich hab Probleme mit folgenden Makros:
1 | |
2 | |
3 | |
Ich möchte zum Beispiel MEM_MALLOC mit malloc von der stdlib.h verbinden. Dies soll allerdings in einer anderen Headerdatei passieren. Wie mache ich das?
|
Anzeige
|
Probleme mit Makro Funktionen in Ansi C
Gast
#1653932
Hi, ich hab Probleme mit folgenden Makros:
Ich möchte zum Beispiel MEM_MALLOC mit malloc von der stdlib.h verbinden. Dies soll allerdings in einer anderen Headerdatei passieren. Wie mache ich das? #define macht nichts anderes als Textersetzungen.
Du gibst den Ausgangstext an (der Makro-Name) und der Rest der Zeile ist
der Text, der anstelle dieses Textes eingesetzt werden soll.
Im grunde nichts anderes als 'Suchen und Ersetzen' in deinem Texteditor.
Dh. du hast in der Verwendung zb die Zeile
i = A(5);
und du möchtest dass der COmpiler eigentlich dieses hier zu Gesicht
bekommt:
i = call_func( foo( 5 ) );
was muss passieren, damit eine Textersetzung das leistet? Der Text 'A(
irgendwas )' muss durch 'call_func( foo ( irgendwas ) )' ersetzt werden.
Oder eben in Präprozessor Schreibweise:
#define A(x) call_func( foo( x ) )
Wenn du also ein Makro schreiben willst, dann überleg dir, was letzten
Endes nach der Textersetzung rauskommen soll. Das leitet dich dann
dahingehend, wie das Makro zu schreiben ist.
1. Wozu das Ganze? Für malloc und free tausend neue Namen einführen, damit keiner mehr den Quelltext versteht? 2. Was sollen die Parameter machen? Z.B. der zweite von MEM_MALLOC... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|