作为参数的无名称空指针

Nameless void pointer as parameter?

本文关键字:空指针 无名 参数      更新时间:2023-10-16

这是VirtualBox中函数的签名:

static DECLCALLBACK(void) svcCall (void *,
                                   VBOXHGCMCALLHANDLE callHandle,
                                   uint32_t u32ClientID,
                                   void *pvClient,
                                   uint32_t u32Function,
                                   uint32_t cParms,
                                   VBOXHGCMSVCPARM paParms[])

我不知道第一个参数,void *应该是什么意思,以及如何使用它。

它有什么用?

它可能没有在该实现中使用。不带名称可避免编译器警告

unused parameter xyz

要了解此参数的含义,您应该查看回调函数声明,而不是任意实现。

第一个参数 void * 应该是什么意思

这意味着第一个参数的类型为 void* 。不为参数命名意味着故意未使用该参数。

如何使用它

一个没有,以防万一不能使用它

它有什么用?

如果你想要一个明确的答案,你应该问写它的VirtualBox开发人员。我不是他们,但我可以给你一个猜测:

也许,该函数用作回调。并且回调被指定为将 void 指针作为第一个参数。但是这个特定的回调不需要 void 指针的值。