0

TEXT("x") マクロは、ユニコードが定義されている場合は L"x" に展開され、ユニコードが定義されていない場合は "x" に展開されます。次のコードをコンパイルしようとすると、「エラー #1049: マクロ パラメーターの構文エラー」と表示されるためです。 ."

#define T("x") "x"

int main()
{
}
4

2 に答える 2

2

tchar.hインストールのヘッダーを検索します。次のようなものが得られます。

#define __T(x)      L ## x

Unicode モードでは、上記のマクロはLと 文字列引数を一緒に貼り付けます。ASCII モードでは、貼り付けるプレフィックスがないため、単純に次のようになります。

#define __T(x)      x

このマクロは、別のマクロ_T()(単一のアンダースコアを使用) を介して間接的に呼び出し、文字列リテラルを引数として渡すことに注意してください。

于 2012-05-20T20:14:09.687 に答える
1
#define T("x") "x"

これはマクロ関数を定義し、引用符がない場合に名前がT付けられるパラメーターは何でしょうか。x代わりに次のようなことを試すことができます。

#define T(x) #x
于 2012-05-20T20:10:29.213 に答える