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

下面做下简单总结

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也没用过几次。。。

猜你喜欢

转载自blog.csdn.net/weixin_37887248/article/details/83148352