1.PCSTR,LPCSTR
_P_:point 指針
_C_:const 常量
_STR_ :string 字符串
PCSTR 就是 const char* 類型
PCSTR的定義處
typedef CONST CHAR *LPCSTR, *PCSTR;
_L_:long 長類型
_T_: 這裏無意義
LPCTSTR的定義處
typedef LPCSTR LPCTSTR;
LPCSTR 的定義處
typedef CONST CHAR *LPCSTR, *PCSTR;
在VC98中,LPCTSTR 和PCSTR是同一類型,都是const char*;
LPCWSTR
_W_:wide 寬類型
LPWSTR就是寬字符串的指針
LPWSTR的定義處
typedef WCHAR *LPWSTR, *PWSTR;
2.字符串的定義和初始化
char *str = "abcd";
char str[20] = "abcd";
3.關於wchar_t,L"xx",_T
vc98下面
wchar_t 定義於CTYPE.H中
typedef unsigned short wchar_t;
wchar_t用來存放UNICODE字符的。
Q:爲什麼要用 UNICODE?
A:起初電腦上只有ANSI字符集,這種字符集規定一個字符只佔用7bits,這樣就能表示英文的所有字母和一些常用的符號。
後來這些這中字符集不能滿足需要了,比如除了英文還要表示中文的所有字符,還有其他國家的所有文字,所以後來就用兩個字節,就是16bits表示一個字符,這樣就能滿足需要了,這就是UNCODE字符集。
所有wchar_t表示的變量佔用的空間就是兩個字節。
wchar_t wstr[20] = L"hello,world!";
L"xx"就是將字符串從ansi編碼存放方式的轉化爲按UNICODE編碼存放方式
_T("")是一個宏,
vs10.0中
定義於tchar.h下。
#define __T(x) L ## x
#define _T(x) __T(x)
vc98中
定義於TCHAR.H下
#define __T(x) x
#define _T(x) __T(x)
_T的作用就是讓你在不同編譯器下表現的不同(轉化爲UNICODE,或者不轉化UNIDODE)