请问一下宏定义的问题,hdc这个句柄
如题,我用VC6.0知道了HDC宏定义#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name 这后面的定义是什么意思呢?我记得学C语言的时候,宏定义说到些,但貌似没弄明白,就是这些定义的结构体,啥意思哦 同样不明白,帮顶 本帖最后由 santaclaus 于 2015-2-24 12:44 编辑#define DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name
int main()
{
//将HDC代入宏中,上面name将用HDC替换。##是连接符,代入后“name##__”变成“HDC__”,最终的宏展开,见后面的等价部分。
DECLARE_HANDLE(HDC);
HDC hdc;
return 0;
}
等价于:
int main()
{
struct HDC__
{
int unused;
};
typedef struct HDC__ *HDC; //HDC是个指针,是“HDC__”这样一个结构体的指针
HDC hdc;
return 0;
}
{:7_146:} 都差不多吧
页:
[1]