Was macht diese Codezeile?
-
Hallo,
ich versuche gerade mich in ein fertiges C Programm einzuarbeiten. Dabei finde ich öfter mal folgende Codezeile:
#define MC_DEF_CONST_MOD(m, p) MC_ ## m ## __ ## p
Ich kann mir nich vorstellen was diese macht? Weiß jemand mehr?
THX.
3ugen
-
^^ mit dem ## kannste im quelltext strings zusammenkleben (wird z.b. verwendet, um den preprozzi vor'm compilieren spezielle bezeichner generieren zu lassen).
z.b., dein MC_DEF_CONST_MOD (lala,4) würde zu MC_lala_4
-
Vielen dank für die Antwort.
Komisch, dass ich dazu nichts bei Google oder meinen C-Büchern finden konnte.
-
3ugen3 schrieb:
Komisch, dass ich dazu nichts bei Google oder meinen C-Büchern finden konnte.
Nö, gar nicht. Der Präprozessor wird in C-Büchern fast immer stiefmütterlich behandelt, weil angeblich "gefährlich".
Und wenn man selbst nicht weiß, daß man nach token concatenation sucht, woher soll google wissen, daß man genau danach sucht. Der Artikel ist übrigens insgesamt recht lesenswert, sind fast alle Fallstricke bzgl. Macrobasteleien drin.
-
noch Mal danke für den Artikel.