您的位置:首页 > 其它

关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L

2013-08-07 10:20 459 查看
char :单字节变量类型,最多表示256个字符,

wchar_t :宽字节变量类型,用于表示Unicode字符,

它实际定义在<string.h>里:typedef unsigned short wchar_t。

为了让编译器识别Unicode字符串,必须以在前面加一个“L”,定义宽字节类型方法如下:

    wchar_t c = `A' ;


wchar_t * p = L"Hello!" ;


wchar_t a[] = L"Hello!" ;

其中,宽字节类型每个变量占用2个字节,故上述数组a的sizeof(a) = 14

TCHAR / _T( ) :

如果在程序中既包括ANSI又包括Unicode编码,需要包括头文件tchar.h。TCHAR是定义在该头文件中的宏,它视你是否定义了_UNICODE宏而定义成:

定义了_UNICODE:    typedef wchar_t TCHAR ;

没有定义_UNICODE: typedef char TCHAR ;

#ifdef UNICODE

typedef char TCHAR;

#else

typede wchar_t TCHAR;

#endif

_T( )也是定义在该头文件中的宏,视是否定义了_UNICODE宏而定义成:

定义了_UNICODE:    #define _T(x) L##x

没有定义_UNICODE: #define _T(x) x

注意:如果在程序中使用了TCHAR,那么就不应该使用ANSI的strXXX函数或者Unicode的wcsXXX函数了,而必须使用tchar.h中定义的_tcsXXX函数。

以strcpy函数为例子,总结一下:




Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: