C中的void *(* routine)(void *)是什么意思?

粉红色大象游行

我正在学习C,我得出以下表达式:

void *(*routine)(void *)

我觉得很混乱。也许是指针...指向指针...指向指针?

如果我想将此东西传递给函数,我们将如何处理它?我试图将此例行构造作为参数传递给采用void(*)(void)...的函数,但我实际上对这实际上意味着什么迷失了。

LihO
void *(*routine)(void *);

声明一个指向函数的指针,该函数采用type的参数void *并返回type的指针void *


简单的例子:

#include <stdio.h>

void* foo(void* x) {
    printf("Hello.");
}

int main(void) {
    void *(*routine)(void *);
    routine = foo;              // assings foo to our function pointer
    (*routine)(NULL);           // invokes foo using this pointer
    return 0;
}

输出: Hello.


“如果我想将此东西传递给函数”〜这是为您提供的示例2:

#include <stdio.h>

void* foo(void* x) {
    printf("Hello.");
}

typedef void *(*RoutinePtr)(void *);           // alias to make your life easier

void routineInvoker(RoutinePtr routine) {
    (*routine)(NULL); // invokes the routine
}

int main(void) {
    RoutinePtr routine = foo;   // creates a function pointer
    routineInvoker(routine);    // and passes it to our invoker
    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

(void)在c ++中是什么意思?

来自分类Dev

void(*)()在代码中是什么意思

来自分类Dev

void Enter() = 0 是什么意思;在 C# 中是什么意思?

来自分类Dev

c中的*(volatile void **)是什么意思?

来自分类Dev

C中的“ static void *”是什么意思?

来自分类Dev

decltype(void())中的void()到底是什么意思?

来自分类Dev

Swift中的void->(void)是什么意思?

来自分类Dev

JavaScript:“ void 0”是什么意思?

来自分类Dev

除以sizeof(void *)是什么意思?

来自分类Dev

“ void fatal(char *);”是什么意思?

来自分类Dev

打字稿中的“ void”是什么意思?

来自分类Dev

这个问号在Flow中是什么意思:“?()=> void”

来自分类Dev

{handleButton}: {handleButton:()=>void} 在示例中是什么意思

来自分类Dev

C中的typedef void * key_type是什么意思?

来自分类常见问题

在GNU C宏envSet(name)中,(void)“”名称是什么意思?

来自分类Dev

在Objective-C中写`static void * ptr =&ptr`是什么意思

来自分类Dev

在c中具有结构的void *成员是什么意思?

来自分类Dev

C中的typedef void * key_type是什么意思?

来自分类Dev

typedef int function(void *)是什么意思?

来自分类Dev

“在签名中非法使用'void'类型”是什么意思?

来自分类Dev

当用作模板参数时,void()是什么意思?

来自分类Dev

bind <void>(ref(acc),_1)是什么意思?

来自分类Dev

`((void(*)())0x1000)();是什么意思?

来自分类Dev

“ void”作为方法的返回类型是什么意思?

来自分类Dev

“ typedef void *(* Something)(unsigned int)”是什么意思

来自分类Dev

“在签名中非法使用'void'类型”是什么意思?

来自分类Dev

std :: _ Bind <std :: _ Mem_fn <void(ClassName :: *)()>(ClassName *)>是什么意思?(C ++)

来自分类Dev

C中()的(void)是什么

来自分类Dev

void *与char *具有相同的表示和内存对齐是什么意思?

Related 相关文章

  1. 1

    (void)在c ++中是什么意思?

  2. 2

    void(*)()在代码中是什么意思

  3. 3

    void Enter() = 0 是什么意思;在 C# 中是什么意思?

  4. 4

    c中的*(volatile void **)是什么意思?

  5. 5

    C中的“ static void *”是什么意思?

  6. 6

    decltype(void())中的void()到底是什么意思?

  7. 7

    Swift中的void->(void)是什么意思?

  8. 8

    JavaScript:“ void 0”是什么意思?

  9. 9

    除以sizeof(void *)是什么意思?

  10. 10

    “ void fatal(char *);”是什么意思?

  11. 11

    打字稿中的“ void”是什么意思?

  12. 12

    这个问号在Flow中是什么意思:“?()=> void”

  13. 13

    {handleButton}: {handleButton:()=>void} 在示例中是什么意思

  14. 14

    C中的typedef void * key_type是什么意思?

  15. 15

    在GNU C宏envSet(name)中,(void)“”名称是什么意思?

  16. 16

    在Objective-C中写`static void * ptr =&ptr`是什么意思

  17. 17

    在c中具有结构的void *成员是什么意思?

  18. 18

    C中的typedef void * key_type是什么意思?

  19. 19

    typedef int function(void *)是什么意思?

  20. 20

    “在签名中非法使用'void'类型”是什么意思?

  21. 21

    当用作模板参数时,void()是什么意思?

  22. 22

    bind <void>(ref(acc),_1)是什么意思?

  23. 23

    `((void(*)())0x1000)();是什么意思?

  24. 24

    “ void”作为方法的返回类型是什么意思?

  25. 25

    “ typedef void *(* Something)(unsigned int)”是什么意思

  26. 26

    “在签名中非法使用'void'类型”是什么意思?

  27. 27

    std :: _ Bind <std :: _ Mem_fn <void(ClassName :: *)()>(ClassName *)>是什么意思?(C ++)

  28. 28

    C中()的(void)是什么

  29. 29

    void *与char *具有相同的表示和内存对齐是什么意思?

热门标签

归档