TEXT("x") マクロは、ユニコードが定義されている場合は L"x" に展開され、ユニコードが定義されていない場合は "x" に展開されます。次のコードをコンパイルしようとすると、「エラー #1049: マクロ パラメーターの構文エラー」と表示されるためです。 ."
#define T("x") "x"
int main()
{
}
tchar.h
インストールのヘッダーを検索します。次のようなものが得られます。
#define __T(x) L ## x
Unicode モードでは、上記のマクロはL
と 文字列引数を一緒に貼り付けます。ASCII モードでは、貼り付けるプレフィックスがないため、単純に次のようになります。
#define __T(x) x
このマクロは、別のマクロ_T()
(単一のアンダースコアを使用) を介して間接的に呼び出し、文字列リテラルを引数として渡すことに注意してください。
#define T("x") "x"
これはマクロ関数を定義し、引用符がない場合に名前がT
付けられるパラメーターは何でしょうか。x
代わりに次のようなことを試すことができます。
#define T(x) #x