Wieso L vor String ?

pyr0t0n

Erfahrenes Mitglied
Aloah,

mir brennt seit längerem die Frage wieso man in VC++ vor einem String L schreiben muss?

also

$var = L"Teststring";

Danke schonmal für die erklärung.
 

Adrian_Broher

Erfahrenes Mitglied

pyr0t0n

Erfahrenes Mitglied
aber da is doch dann nichts anders dran im grunde isses doch weiterhin nen String. Warum sollte ich diesen dann zu einem wchar datentyp casten ?

also mir ist der sinn davon nicht ganz klar
 

Adrian_Broher

Erfahrenes Mitglied
Das ist kein Casting. Bei dem Literal mit dem L Prefix ist jedes Zeichen im Literal ein wchar_t. Ohne das Prefix ist jedes Zeichen im Literal ein char.
 

langer1801

Erfahrenes Mitglied
Hi.
der Unterschied besteht darin, dass ein mit L initialisierter String (oder mit dem Makro _T("irgendetwas")) einen Unicode-String liefert, also je Zeichen ein 16-Bit-Wort. Ohne wird ein ANSI-String geliefert, also je Zeichen 8 Bit.

Mfg

langer