使用泛型文字對應
Microsoft 特定的
為針對不同的國際市場簡化程式碼開發,Microsoft 執行階段程式庫針對許多資料類型、常式與其他物件提供 Microsoft 的特定「泛型文字」對應。 這些對應定義在 TCHAR.H 中。 您可以使用這些名稱對應來撰寫泛型程式碼,以針對下列三種字元集的任何一種編譯:ASCII (SBCS)、MBCS 或 Unicode,取決於您使用 #define
陳述式所定義的資訊清單常數。 泛型文字對應Microsoft與ANSI不相容的延伸模組。
泛型文字對應的預處理器指示詞
#define |
編譯的版本 | 範例 |
---|---|---|
_UNICODE |
Unicode (寬字元) | _tcsrev 對應到 _wcsrev |
_MBCS |
多位元組字元 | _tcsrev 對應到 _mbsrev |
沒有定義預設值: 與 _MBCS 未定義 ( 預設值 ) _UNICODE |
SBCS (ASCII) | _tcsrev 對應到 strrev |
例如,若已在您的程式中定義 MBCS
,則在 TCHAR.H 中定義的泛型文字函式 _tcsrev
會對應到 mbsrev
;或者若已定義 _UNICODE
,則會對應到 _wcsrev
。 若兩者皆否,則 _tcsrev
會對應到 strrev
。
泛型文字資料類型 _TCHAR
(亦定義在 TCHAR.H 中) 會對應到類型 char
(若已定義 _MBCS
),或對應到類型 wchar_t
(若已定義 _UNICODE
),以及對應到類型 char
(若未定義上述任一常數)。 已在 TCHAR.H 中提供其他資料類型對應以方便您進行程式開發,但是 _TCHAR
是最實用的類型。
泛型文字資料類型對應
泛型文字資料類型名稱 | SBCS (_UNICODE、_MBCS 未定義) | _MBCS 已定義 | _UNICODE 已定義 |
---|---|---|---|
_TCHAR |
char |
char |
wchar_t |
_TINT |
int |
int |
wint_t |
_TSCHAR |
signed char |
signed char |
wchar_t |
_TUCHAR |
unsigned char |
unsigned char |
wchar_t |
_TXCHAR |
char |
unsigned char |
wchar_t |
_T 或 _TEXT |
無效果 (已由前置處理器移除) | 無效果 (已由前置處理器移除) | L (將下列字元或字串轉換成其 Unicode 對應項目) |
如需例程、變數和其他物件的泛型文字對應完整清單,請參閱 泛型文字對應。
下列程式碼片段示範如何使用 _TCHAR
與 _tcsrev
來對應到 MBCS、Unicode 與 SBCS 模型。
_TCHAR *RetVal, *szString;
RetVal = _tcsrev(szString);
若已定義 MBCS
,前置處理器會將上述片段對應到下列程式碼:
char *RetVal, *szString;
RetVal = _mbsrev(szString);
若已定義 _UNICODE
,前置處理器會將相同的片段對應到下列程式碼:
wchar_t *RetVal, *szString;
RetVal = _wcsrev(szString);
_MBCS
如果 和 _UNICODE
都尚未定義,預處理器會將片段對應至單一位元組 ASCII 程式代碼,如下所示:
char *RetVal, *szString;
RetVal = strrev(szString);
這些巨集可讓您使用所有三種字元集特有的例程來撰寫、維護和編譯單一原始碼檔案。
END Microsoft 特定的