#define Konstante in char umwandeln
-
hallo!
ich hab eine konstante wie folgt definiert:#define TEST "TEST"
nun würde ich gerne diese Konstante in const char* umwandeln, damit ich es in eine Methode übergeben kann..
nur, mit (const char*) TEST oder reinterpret_cast<const char*>TEST gehts nicht
welche möglichkeiten habe ich denn noch?
danke für die hilfe.
-
geht
const char* TEST = "TEST";
etwa nicht
-
ich möchte es aber mit #define
gibt es da etwa keine Möglichkeit?
danke für die mühe.
-
Warum willst du da ein #define haben?
-
Braunsteins Möglichkeit ist viel C++'iger als das mit dem define.
Du kannst kein Makro das du dir mit define erstellt hast caste, da es keine Variable im wirklichen Sinne ist sondern nur ne Zeichenfolge die vor dem Compilieren mit anderen Zeichen ersetzt wird.
-
Wo ist das Problem??
#define A_COOL_STRING "Hello World" void f(const char* str) { /* ... */ } f(A_COOL_STRING);
-
Der Vorteil von define ist ja, das es zur compilezeit ausgewertet wird und da sehe ich als einzige Möglichkeit, es zur compilezeit in ne statische const char variable zu verarbeiten. sonst kannst du auch ne normale Variable nehmen.
-
ehm... ja
habe herausgefunden dass er das nicht in char will; sondern in const unsigned short*
wie kann ich das in const unsigned short* umwandeln??
-
wenn du's unbedingt aufwendig haben willst:
string st=TEST; const unsigned short* mShort=(const unsigned short*)st.c_str(); funktion(mShort);
-
Dann kannst du aber auch gleich ne normale Variable nehmen und kannst dir den umstand ersparen
-
const unsigned short* klingt mir sehr nach wide-characters
Dazu schreibst du statt "Test" L"Test", dann ist die Zeichenkette nicht aus den normalen ASCII-Zeichen, sondern besteht aus wide-characters