PSTR、LPSTR、PCSTR、LPCSTR、LPWSTR、PWSTR、PCWSTR、LPCWSTR、LPCTSTR

不知道是不是ACM以来的习惯的问题,本人从来就是char*,wchar_t*,TCHAR*。。。不常用PSTR、LPSTR这些。。。

下面做下简单总结

typedef char CHAR;
typedef wchar_t WCHAR;
#define CONST const

typedef CHAR* PCHAR,*PCH,*LPCH,*NPSTR,*PSTR,*LPSTR;
typedef  CONST CHAR* PCCH,*LPCCH,*PCSTR,*LPCSTR;


typedef WCHAR *PWCHAR,*NWPSTR,*PWCH,*LPWCH,*PWSTR,*LPWSTR;
typedef CONST WCHAR* PCWCH,*LPCWCH,PCWSTR,LPCWSTR;

typedef /* [string] */ WCHAR __RPC_FAR *LPWSTR;

typedef /* [string] */ TCHAR __RPC_FAR *LPTSTR;

typedef LPSTR LPTCH, PTCH;
typedef LPSTR PTSTR, LPTSTR;
typedef LPCSTR LPCTSTR;
为了统一成大写,C++给char,wchar_t,const 取了个大写别名。

理解以上的命名规则就可以记住每种别名带表什么意思

N:代表near,在16位系统中代表16位的段内地址

L:代表long(far),在16位系统中代表16位的段地址+16位的偏移地址

在32位系统中 N和L已经没有作用,只是为了向前兼容(兼容16位机器)才保留这些定义。

P:代表指针

C:代表CONST(const)

W:代表WCHAR(wchar_t)

T:代表宏_T(一个兼容的宏,当定义了UNICODE或者_UNICODE是表示WCHAR,否则表示char)

CH:char的简写

STR:string的简写

明白了以上每个字母代表什么含义之后,只要知道排列顺序即可。正则表达式:[L/N][P][C][W/T][CH/STR]

突然发现 typedef也没用过几次。。。



你可能感兴趣的:(window编程,C++,C语言)