vc的问题..

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:04:16
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
是什么意思??

就是当你用DECLARE_HANDLE来定义一个变量的时候,相当于定义一个struct name##__的类型指针

比如

DECLARE_HANDLE(mmtype);

mmtype bb;

...

bb->unused = 0;

等于
struct name##__ {
int unused;
};

typedef struct name##__ *mmtype;

mmtype bb;

...

bb->unused=0;

这样bb就是struct name##__类型的一个指针
直接bb->unused = 0;是非法的,因为bb没有初始化,同时在name##__里#是非法字符,所以这只是个interface