Hallo!
Ist es irgendwie möglich den Glue-Operator ("##") auch bei der Angabe
eines Headerfiles zu verwenden?
Dummycode (nach dem ersten Durchlauf des Präprozessors soll da "#include
"bla_XYZ.h" stehen):
1 | #define USE_TYPE XYZ
|
2 | #include "bla_"##USE_TYPE##".h"
|
geht schon mal nicht.
Auch das hier war ohne Erfolg:
1 | #define USE_TYPE XYZ
|
2 | #define HEADER_FILE_NAME "bla_"##USE_TYPE##".h"
|
3 | #include HEADER_FILE_NAME
|
Genauso wenig funktioniert hat das
1 | #define PASTER3(x,y,z) x ## y ## z
|
2 | #define EVALUATOR3(x,y,z) PASTER3(x,y,z)
|
3 | #define HEADER_FILE_NAME EVALUATOR3(bla_,USE_TYPE,.h)
|
4 | #include EVALUATOR3(\",HEADER_FILE_NAME,\")
|
oder ähnliche Kombinationsmöglichkeiten, die mir eingefallen sind,
funktioniert.
Deshalb die Frage:
Geht das überhaupt?
Ziel soll es sein, dass man für einen neuen Typ einfach ein neues c- und
h-File mit gegebenen Namensschema anlegt und einfach nur das Makro
USE_TYPE anpasst. Im Code soll dann automatisch das richtige Headerfile
eingebunden und die passende Init ( Parser_Type_XYZ_Init() ) aufgerufen
werden.
Der Funktionsname wird richtig über EVALUATOR3 und PASTER3
zusammengebaut.
Bei dem include scheitere ich jedoch. - Leider.
Könnt ihr mir bitte weiterhelfen!? - Danke!
Grüße
Felix