关于宽字符

字符串类型

char* :一串以0结尾的char,其中每个char代表一个ascii码;他所代表的字符串通常使用ANSI编码

CHAR*:同char*,windows下可用

wchar_t*:一串以0结尾的wchar_t,其中每个wchar_t可能代表一个unicode码.

WCHAR*:相当于wchar_t* , windows下可用

TCHAR*: 一串以0结尾的TCHAR,其中TCHAR可能代表一个unicode码,也可能代表ansi码,根据是否定义unicode宏决定。

WINDOWS字符串类型

L:long (16位操作系统遗物,在32位系统中,已经不需要long修饰了)

P:point

C:const

T:如果定义unicode,则代表wchar_t,否则代表char

STR:字符串

LPSTR|PSTR  ==  char*

LPCSTR| PCSTR == const char*

LPWSTR|PWSTR == wchar_t*

LPCWSTR|PCWSTR == const wchar_t*

LPWSTR|PWSTR == TCHAR*

LPCWSTR|PCWSTR == const TCHAR*

规律:L可以省略,P比不可省,先判断是否为C,在判断宽字符,最后加str

字符串常量

     char* a = "this is char";

     CHAR *b = "this is CHAR";

     wchar_t *c = L"this is whcar_t";

     WCHAR *d = L"this is WCHAR";

     TCHAR* e = _T("this is TCHAR");

注意

L"xxxxx"代表unicode,而wchar_t存的是宽字节,但却不一定是unicode!

你可能感兴趣的:(c,windows)