Hallo!
ich versuch gerade rauszukriegen, wie man einen String im Präprozessor
zusammensetzt.
Dabei soll so ein String hier rauskommen: "Software-Version 1.23"
und besteht aus diesen Teilen:
- zusammengestzter string befindet sich in einem #define, z.B. so:
1 | #define _SW_STR_ "Software-Version 1.23"
|
- Einzelbestandeteile der Versionsnummer sind in einem #define:
1 | #define _VMSTR_ Software-Version
|
2 | #define _FOO_ 1
|
3 | #define _BAR_ .123
|
Ich dachte da jetzt an so etwas:
1 | #define CONCATEN( x,y,z ) x ## y ## z
|
2 | #define REPLCONC( a,b,c ) CONCATEN( a, b, c )
|
3 |
|
4 | #define _SW_STR_ REPLCONC( _FOO_, _BAR_, _VMINOR_ )
|
5 |
|
6 |
|
7 | char string_ptr[]= #_SW_STR_;
|
Das REPLCONC() sorgt dafür, dass der Inhalt von _FOO_ ( also 1)
verwendet wird - und nicht nur der Token (_FOO_).
Aber so funktioniert das leider noch nicht :(
in string_ptr steht danach der String "x ## y ## z"
Kennt da jemand eine elegante Möglichkeit um soetwas zu generieren?