Typecasting void指向void的双指针,为什么?

问题描述 投票:0回答:1

我正在处理的代码具有一个函数,该函数具有一个类型为void的双指针,在该函数指针中,该双指针被类型转换为void,并且该指针在其他任何地方都没有使用。我找不到任何地方为什么这样做。有人请阐明一下。

static void kbd_callback(const char *name, int name_len,
                         const char *instruction, int instruction_len,
                         int num_prompts,
                         const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts,
                         LIBSSH2_USERAUTH_KBDINT_RESPONSE *responses,
                         void **abstract /* <-- This */)
{
    int i;
    size_t n;
    char buf[1024];
    (void)abstract; // <---- and this

    ...
}
c pointers void
1个回答
0
投票

是双指针,表示它是指向指针的指针。类型为void,可以容纳任何类型。因此,我假设它将用于保存一个指针,在这种情况下,我假设开发人员不知道它将传递哪种类型的指针,或者它持有程序中已经声明和初始化的不同类型。

© www.soinside.com 2019 - 2024. All rights reserved.