使用一般文本映射
Microsoft 专用
为了简化各种国际市场的代码开发, Microsoft 运行库提供许多数据类型、例程和其他对象提供特定于 Microsoft 的 “一般文本映射”。这些映射。 TCHAR.H. 定义。可以使用这些名称映射到可用于任何这三个生成字符集的通用代码:ASCII (SBCS) 使用 #define 语句,中, MBCS 或 Unicode,根据一个清单常数您定义。一般文本映射是不符合 ANSI 的 Microsoft 扩展。
一般文本映射的预处理器指令
# define |
编译版本 |
示例 |
---|---|---|
_UNICODE |
Unicode (宽字符) |
_tcsrev 映射到 _wcsrev |
_MBCS |
多字节字符 |
_tcsrev 映射到 _mbsrev |
无 (默认值: _UNICODE 和 _MBCS 未定义) |
SBCS (ASCII) |
为 strrev的_tcsrev映射 |
例如,一般文本功能 _tcsrev,定义在 TCHAR.H,映射到 mbsrev ,如果 MBCS 在过程定义,或将 _wcsrev,如果 _UNICODE定义。否则为 strrev的 _tcsrev映射。
一般文本数据类型 _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 的结尾