文字列の前のLまたは_についてT

777 ワード

一、文字列の前にLの役割を加える:例えばL「私の文字列」はANSI文字列をunicodeに変換する文字列を表し、1文字あたり2バイトを占有する.
strlen("asd")   =   3;   
strlen(L"asd")   =   6;

二、Tマクロは引用符による文字列を環境設定に基づいてコンパイラがコンパイル対象環境に応じて適切な(UnicodeかANSIか)文字処理方法を選択できるようにするUNICコードを定義したら_Tマクロは文字列の前にLを付けます.このとき_T(「ABCD」)はL「ABCD」に相当し、これは広い文字列である.定義がなければ_Tマクロは文字列の前にそのLを付けません.T(「ABCD」)は「ABCD」に等しい
三、TEXT、TEXTと_Tは次の3つの文のようになります.
TCHAR   szStr1[]   =   TEXT("str1");   
char   szStr2[]   =   "str2";   
WCHAR   szStr3[]   =   L("str3");   

では、第1の文はUNICODを定義したときに第3の文と解釈され、定義されていないときは第2の文に等しい.ただし、2つの文はUNICodeが定義されているかどうかにかかわらずANSI文字列を生成し、3つ目の文は常にUNICode文字列を生成します.プログラムの移植性のために,いずれも第1の表現方法を提案する.ただし、場合によっては、ANSIまたはUNICODのいずれかの文字が必要な場合は、次の2つの方法が使用されます.