微软就是将C的基础数据类型在次包装后形成了他自己的数据类型
以下都是常用的Windows中的数据类型
1. BOOL 表示真假,但是在微软封装后这个数据类型了int,返回值不是True和False而是1 和0 。
2.BYTE unsigned char无符号字符类型,微软是想用这个名字来表示一个数据的长度,8Bit 。
3.WORD unsigned short 类型,16Bit 。。。。。BYTE 和DWORD这种数据类型微软是想让我们在表达长度的时候使用。
4.PFLOAT 这里要特别注意,他是一个FLOAT的指针,是不可以直接赋值的,必须malloc动态赋值。(少用,很难驾驭)
5.DWORD(用的较多) 类型是个unsigned long 32Bit。注意:DWORDPTR和DWORD类型都是一样的,数据类型都是相同的。DWROD表示32位,DWORD_PTR表示的是32位的地址值。
注意:地址是系统自动分配给程序的存储单元,这个存储单元是不可控的,如int * p,W,这里如果给W赋值 w=9,那么W的地址的地址值就是9,如果给P=&W这时候,P的地址值就是W的地址。的
6. DWORD 和 DWORD_PTR的区别
DWORD表示的是一个32位的数据类型,而DWORD_PTR表示的是一个32位的地址值。如果编译环境到64位下,那么DWORD还是表示32位,而DWORD_PTR会变成64位,因为DWORD_PTR表示的是一个用来存储地址值的东东,指针的长度是会受到编译环境,硬件,系统等发生变化的。所以DWORD_PTR可以用来进行地址的偏移计算。
7.PWCHAR 和 LPWSTR的区别。
微软希望我们使用的是PWCHAR指向的是WCHAR 类型的数据,而LPWSTR是指向一个字符串。
8.TCHAR 是根据工程的编码来的,在Unicode编码下是表示TCHAR=wchar_t,如果是ASCII编码下的话 TCHAR=char
UTF-8是用来网络编程的,因为可以用来压缩字符集
Unicode和UTF-16就是同一种东西,UTF之间是可以互相转换的。是Windows使用的编码。
UF-16 编码用wchar_t来装更加便捷,char也可以装 但是不便捷,简单说就是操作UniCode编码的时候用Wchar-t,,ASCII码下用char。