Microsoft 特定的
為針對不同的國際市場簡化程式碼開發,Microsoft 執行階段程式庫針對許多資料類型、常式與其他物件提供 Microsoft 的特定「泛型文字」對應。 這些對映定義在 中。TCHAR.H 您可以使用這些名稱對應來撰寫泛型程式碼,以針對下列三種字元集的任何一種編譯:ASCII (SBCS)、MBCS 或 Unicode,取決於您使用 #define 陳述式所定義的資訊清單常數。 泛型文字對應Microsoft與ANSI不相容的延伸模組。
泛型文字對應的預處理器指示詞
#define |
編譯的版本 | 範例 |
|---|---|---|
_UNICODE |
Unicode (寬字元) |
_tcsrev 對應到 _wcsrev |
_MBCS |
多位元組字元 |
_tcsrev 對應到 _mbsrev |
沒有定義預設值: 與 _UNICODE 未定義 ( 預設值 ) _MBCS |
SBCS (ASCII) |
_tcsrev 對應到 strrev |
例如,在 中TCHAR.H定義的 generic-text 函數 _tcsrev對映至 _mbsrev_MBCS if 已在程式中定義,或對映至 _wcsrev if _UNICODE 已定義。 若兩者皆否,則 _tcsrev 會對應到 strrev。
泛型文字資料類型 _TCHAR(也定義於 中定義TCHAR.H) 對映至 類型 _MBCSchar if 已定義wchar_t_UNICODE、類型 if 已定義,以及 類型 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 特定的