【发布时间】:2011-03-30 19:48:20
【问题描述】:
当我在 COM 中开发时,我总是看到 (void**) 类型转换如下。
QueryInterface(/* [in] */ REFIID riid,/* [out] */ void** ppInterface)
它的确切含义是什么?
恕我直言,它告诉编译器不要强制类型验证,因为 ppInterface 指向的类型在编译时客户端代码不知道。
谢谢~~~
更新 1
我是这样理解的:
void* p 暗示 AnyType* p
void ** pp 暗示 指向 AnyType*
的指针更新 2
如果 void**pp 表示“指向 void* 的指针”,那么编译器在看到它时会进行哪些检查?
【问题讨论】:
-
您的更新是错误的 - 第一部分是正确的,但第二部分不是。
void **pp仅表示“指向void *的指针”。 -
谢谢咖啡馆。有点难以理解...
-
如果 void*pp 表示“指向 void 的指针”,那么编译器在看到它时会进行哪些检查?
-
我不知道。