8

Windows ヘッダー tchar.h で定義されている 2 つのシンボルTCHARと型のさまざまな違いは何ですか? _TCHAR例を挙げて説明します。コードで _TCHAR ではなく TCHAR を使用するシナリオを簡単に説明してください。(10 点)

4

2 に答える 2

10

@RussCが言ったことに加えてTCHAR、Win32 APIで使用され、UNICODE定義に基づいています_TCHARが、Cランタイムで使用され、代わりに定義に基づいてい_UNICODEます。通常、一緒に定義/省略され、UNICODE交換可能になりますが、それは要件ではありません。それらは、異なるフレームワークで使用するために意味的に分離されています。_UNICODETCHAR_TCHAR

于 2012-07-13T02:37:28.713 に答える
8

ここであなたの答えを見つけました:

MSDN フォーラム >> Visual Studio デベロッパー センター >> TCHAR と _TCHAR

TCHAR と _TCHAR は同じですが、TCHAR には先頭にアンダースコアがないため、Microsoft はそれをキーワードとして予約することを許可されていません (TCHAR という変数があると想像してください。どうなるか考えてみてください)。したがって、TCHAR は、言語拡張機能が無効になっている場合 (/Za) は #define されません。

TCHAR は winnt.h ( #include で取得) と /Ze の下の tchar.h で定義されています。_TCHAR は tchar.h (_TSCHAR と _TUCHAR も #defines) でのみ使用できます。これらは、通常の TCHAR データ型の符号なし/符号付きバリアントです。

于 2010-06-01T10:31:54.783 に答える