使用泛用文字對應
Microsoft 專有的
若要簡化程式碼不同的國際市場的開發,Microsoft 的執行階段程式庫提供 Microsoft 專屬的 「 泛用文字"對應許多資料型別、 常式和其他物件。 這些對應於 TCHAR 定義。H. 您可以使用這些名稱對應撰寫泛用可編譯的程式碼的任何字元集的三種: ASCII (SBCS)、 MBCS 或根據您使用定義的資訊清單常數是 Unicode, #define陳述式。 泛用文字對應是不是相容的 ANSI 的 Microsoft 擴充功能。
泛用文字對應的前置處理器指示詞 (Preprocessor Directive)
# define |
編譯版本 |
範例 |
---|---|---|
_UNICODE |
Unicode (寬字元) |
_tcsrev 對應到 _wcsrev |
_MBCS |
多位元組字元 |
_tcsrev 對應到 _mbsrev |
無 (預設值: 既不_UNICODE或_MBCS所定義) |
SBCS (ASCII) |
_tcsrev 對應至strrev |
例如,泛用文字功能_tcsrev,已定義於 TCHAR。H,對應至mbsrev如果MBCS在您的程式上,或者已經定義_wcsrev 如果_UNICODE 巳經定義了。 否則_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);
因此您可以撰寫、 維護和編譯單一原始程式碼檔案使用專屬於任何字元集的三種的常式來執行。
結束 Microsoft 特定