我知道例如 e.g.是什么意思。
void *(*myFuncName)(void*)
这是一个函数指针,它接受并返回void*
。
这是一个接受两个参数的指针吗?
一个返回void*
类型的另一个函数和一个void*
指针?
我只是猜测..
void* (*fct)(void*(*)(void*), void*);
声明一个指向函数的指针 fct
:
void *
void *
类型的参数并返回一个void *
类型的值void *
void* (*fct)(void*(*)(void*), void*)
// 44444 2111 333333333333333333333333
fct(1)是一个指向返回指针的函数(4)的指针(2)。
(*)函数参数为void *(*)(void *)
和void *
void *(*)(void *)
是一个指向需要指针参数并返回指针的函数的指针
void *
是一个指针
cdecl.org和我的编译器都认为这是语法错误。有更多的右括号比左括号。
一个名为x
的函数指针,返回类型为void *
,并且接受两个类型为void *
的参数,看起来像:
void *(*x)(void *, void *);
向左阅读:
myFuncName是一个指针。它指向什么?
向右阅读:
myFuncName是一个指向一个函数的指针,该函数接受两个参数,其中一个是函数指针(具有一个void*
参数并返回void*
,类似于myFuncName
),另一个是类型为*void*
,返回void*
。这个函数返回什么?
向左阅读:
myFuncName是一个指向一个函数的指针,该函数接受两个参数(见上文)并返回void*
正如https://stackoverflow.com/users/47453/bill-lynch所指出的那样,只要您的语法正确,cdecl也会告诉您相同的信息。
最好的问候 安德烈亚斯
fct
的变量,该变量是指向返回void*
并且接受两个参数的函数的指针:第一个参数是指向返回void*
并且接受单个void*
参数的函数的指针,第二个参数是void*
类型。假设在接下来的几秒钟内标题不会改变。 - WhozCraig