我知道,例如
void *(*myFuncName)(void*)
是一个函数指针,它接受并返回void*
。
这是一个带2个参数的指针吗?
void
指针返回void*
和void*
的该类型的另一个函数?
我只是猜猜..
答案 0 :(得分:4)
void* (*fct)(void*(*)(void*), void*);
将fct
声明为指向
void *
void *
并返回void *
和void *
。答案 1 :(得分:1)
void* (*fct)(void*(*)(void*), void*)
// 44444 2111 333333333333333333333333
fct(1)是指向返回指针(4)的函数(3 *)的指针(2)。
(*)函数参数为void*(*)(void*)
和void*
void*(*)(void*)
指向函数的指针,该函数接受指针参数并返回指针
void*
一个指针
答案 2 :(得分:0)
cdecl.org和我的编译器都同意。这是一个语法错误。有更多的近括号而不是开括号。
一个名为x
的函数指针,它返回void *
并带有两个void *
类型的参数,如下所示:
void *(*x)(void *, void *);
答案 3 :(得分:0)
向左阅读:
myFuncName是一个指针。什么是指针?
向右阅读:
myFuncName是一个指向的函数的指针,该函数接受两个参数,其中一个是函数指针(带有一个void*
参数并返回void*
,类似于myFuncName
) ,另一个属于*void*
类型,返回void*
。函数返回什么?
向左阅读:
myFuncName是一个指向函数的指针,该函数接受两个参数(见上文)并返回void*
正如https://stackoverflow.com/users/47453/bill-lynch指出的那样,只要您的语法正确,cdecl就会告诉您相同的内容。
祝你好运 安德烈亚斯