Windows ヘッダー tchar.h で定義されている 2 つのシンボルTCHAR
と型のさまざまな違いは何ですか? _TCHAR
例を挙げて説明します。コードで _TCHAR ではなく TCHAR を使用するシナリオを簡単に説明してください。(10 点)
2 に答える
@RussCが言ったことに加えてTCHAR
、Win32 APIで使用され、UNICODE
定義に基づいています_TCHAR
が、Cランタイムで使用され、代わりに定義に基づいてい_UNICODE
ます。通常、一緒に定義/省略され、UNICODE
交換可能になりますが、それは要件ではありません。それらは、異なるフレームワークで使用するために意味的に分離されています。_UNICODE
TCHAR
_TCHAR
ここであなたの答えを見つけました:
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 データ型の符号なし/符号付きバリアントです。