gpt4 book ai didi

c - 如何转发声明一个以函数指针作为参数的函数?

转载 作者:行者123 更新时间:2023-11-30 18:15:12 25 4
gpt4 key购买 nike

如何在 C 中转发声明以函数作为参数的函数?

这是函数:

void start_thread (void* function (void*)) {

...

}

我尝试将其声明为:

void start_thread (void*);

以及:

void start_thread (void* (void*));

和:

void start_thread (void*, void*);

这些都没有被接受。此函数转发声明的正确日期是哪一天?

编辑:

void start_thread (void (*) (void*));

产量:

Compilation error
prog.c: At top level:
prog.c:135:6: error: conflicting types for 'start_thread'
void start_thread (void* function (void*)) {
^
prog.c:25:6: note: previous declaration of 'start_thread' was here
void start_thread (void (*) (void *));
^

最佳答案

使用挡风玻璃雨刷器技术(左-右-左...):

它是一个指针,所以有一个*。对于函数,因此(*)

它返回void,因此,void (*)

它需要一个void*,所以void (*)(void*)

原型(prototype)为void start_thread(void (*)(void*));

关于c - 如何转发声明一个以函数指针作为参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39597887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com