快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

TIF图库二区:关于char wchart TCHAR T()L宏 T、TEXTTEXT、L



char :单字节变量类型,最多表示256个字符,

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

它实际定义在里: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又包括UnicoTIF图库二区de编码,必要包括头文件tchar.h。TCHTIF图库二区AR是定义在该头文件中的宏,它视你是否定义了_UNICODE宏而定TIF图库二区义成:

定义了_UNICODETIF图库二区: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函数或者UnicodTIF图库二区e的wcsXXX函数了,而必须应用tchar.h中定义的_tcsXXX函数。

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

//假如你想应用ANSI字符串,那么请应用这一套写法:

char szString[100];

strcpy(szString,"test");

//假如你想应用Unicode字符串,那么请应用这一套:

wchar_t szString[100];

wcscpy(szString,L"test");

//假如你想经由过程定义_UNICODE宏,而编译ANSI或者Unicode字符串代码:

TCHAR szString[100];

_tcscpy(szString,_TEXT("test"));

您可能还会对下面的文章感兴趣: