这几个东西来历不一样
size_t 是用来表示大小或多少的一个类型,因为size的取值范围是由内存大小决定的,很久以前内存很小,也许16bit就够了,现在动不动都几百GB内存,64bit才够,用个抽象类型容易移植。size_t虽然不是keyword,但是由于STL里大量使用也就等于是标准了。
LPCTSTR,其实你还少打了个 ‘T’,这个要分拆来理解
P 表示指针 LP 表示长指针,因为在古代指针分为 16bit和32bit
C 表示常量const,作用在指针上就是 const *
T 表示text,因为这个字符串有可能是 char * 或者 是 wchar_t *,根据编译选项会变化所以用抽象的T来表示,所以还有对应的 LPCSTR和LPCWSTR
STR 是string的缩写
这货其实是Windows API特有的,别的平台没这个。
wchar_t 是针对char来的,char早已被定义为一个 byte了,而无法表示更多的unicode字符,所以wchar_t是设计来解决这个问题的,但是wchar_t没有指定到底几个byte,根据编译器操作系统而有不同定义,两个byte 或者 四个byte。