typedef 语句中带逗号

#if defined(_WIN64)
    typedef __int64 INT_PTR, *PINT_PTR;
    typedef unsigned __int64 UINT_PTR, *PUINT_PTR;

    typedef __int64 LONG_PTR, *PLONG_PTR;
    typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;

    #define __int3264   __int64

#else
    typedef _W64 int INT_PTR, *PINT_PTR;
    typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;

    typedef _W64 long LONG_PTR, *PLONG_PTR;
    typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;

    #define __int3264   __int32

#endif

其实这个跟int  a,b;是类似的

首先,_W64 为编译选项,在64 为编译器下,而且打开了/Wp64 编译选项时,编译器会对使用了__w64 的类型进行32 位到64 位移植性的判断

故在此可以忽略不看

简化为typedef int INT_PTR, *PUINT_PTR;

 

先看第一句:typedef int INT_PTR;

意思是为int 取一个别名INT_PTR ,则INT_PTR 和int 就是一样的意思,可以这样使用

INT_PTR a;

a = 10;

 

第二句:typedef int *PUINT_PTR;

就是为int * 取一个别名PUINT_PTR ,则PUINT_PTR 代表的就是int 类型的指针,使用如下:

int a = 0;

PUINT_PTR b = &a;

你可能感兴趣的:(C/C++,MFC,Windows编程)