• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

C Problem / Frage

Mitglied seit
02.08.2002
Beiträge
1.000
Reaktionen
0
Hey =)

ich hab ein kleines Problem:

Ich habe ein Macro das ne Funktion mit variablen Parametern aufrufen soll:

#define EIN_MACRO(parameter) eine_funktion(paramter);

EIN_MACRO((para1,para2,para3,para4))

so weit so gut, müsste gehen, aber ich würde im macro gerne einen Teil der paramter verwenden:

#define EIN_MACRO(param1, parameter) if(param1==1) eine_funktion(param1, paramter);

EIN_MACRO(param0,(para1,para2,para3,para4));

so in der art....geht das irgendwie, weil so funktioniert es ja nicht da er die Klammern mit einsetzt für parameter, gibt nen syntax error denk ich..

Ich hoffe ich hab es so einigermaßen verstänlich geschreiben ~~:(=?

Danke mal für die Hilfe!
Johannes
 

DeCaY4

Guest
eh ohne genau zu wissen was ein macro genau macht:

kannste die parameter nach dem aufruf nicht kopieren und dann benutzen?
und wo kommt das param0 her?
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
Dir ist bewußt, dass Makros vom Präprozessor bearbeitet werden und was genau der tut, oder?
 

DeCaY4

Guest
Original geschrieben von cart
Dir ist bewußt, dass Makros vom Präprozessor bearbeitet werden und was genau der tut, oder?

textuelle ersetzungen beim kompilieren only mein ich

geht doch mit constanten , define pi as 3.141 und dann kann man immer 'pi' als wert benutzen. oder was das an JJ gerichtet? hm c ist schon ne ecke her
 
Mitglied seit
21.07.2002
Beiträge
545
Reaktionen
0
Nicht das ich wirklich verstehe was du willst, aber ich rate mal und behaupte es ist ein macro ala:

#define bla(p0, ...) if(p0==1) eine_funktion(p0, __VA_ARGS__);
 

The_Company

Guest
Bis auf dass einige Compiler (read: MSVC) das nicht kann, ist die __VA_ARGS__ Methode richtig. Auf den anderen Compilern kann man dann statt nem #define ne static inline Methode nehmen.
 
Mitglied seit
02.08.2002
Beiträge
1.000
Reaktionen
0
wie geil :)

Ihr seid die besten *kuss ;)

Hab schon nicht mehr dran geglaubt das dass geht^^

__VA_ARGS__ my love ;)
 
Oben