在C编程中定义并初始化此数据类型

在C编程中定义并初始化此数据类型,c,function-pointers,typedef,C,Function Pointers,Typedef,有人能告诉我这是否是此数据类型的正确定义,以及我初始化它的方式是否正确吗 typedef int const * (* const DataOne)(const int *); =>上述数据类型显示指向函数的常量指针,该函数将指向常量int的指针作为参数,并返回指向常量int的指针 =>初始化和声明:DataOne=&myFunction(7) =>上述数据类型显示指向函数的常量指针,该函数将指向常量int的指针作为参数,并返回指向常量int的指针 对 =>初始化和声明:DataOne=&my

有人能告诉我这是否是此数据类型的正确定义,以及我初始化它的方式是否正确吗

typedef int const * (* const DataOne)(const int *);
=>上述数据类型显示指向函数的常量指针,该函数将指向常量
int
的指针作为参数,并返回指向常量
int
的指针

=>初始化和声明:
DataOne=&myFunction(7)

=>上述数据类型显示指向函数的常量指针,该函数将指向常量int的指针作为参数,并返回指向常量int的指针

=>初始化和声明:DataOne=&myFunction(7)

不对。无法对函数调用进行函数指针赋值(即,不能为参数指定任何实际参数)。此外,DataOne是一种类型,而不是变量。所以,它应该是这样的:

int const * myFunction(const int*);
DataOne myPointer = myFunction;  // &myFunction would also work
要声明没有类型的等效函数指针,请执行以下操作:

int const * myFunction(const int*);
int const * (* const functionPointer)(const int *) = myFunction;

myFunction(7)是一个函数调用。它是否返回函数指针?谢谢,我的解释正确吗?最后一个代码段是否缺少指针的变量?它是
=
。随意添加了一些相关的标记。谢谢,myFunction上怎么可能有或没有符号?@IamTrent with
&myFunction
,您明确表示想要函数的地址,但单独使用函数会使它变成指向函数的指针。所以两者都是等价的。请与常量整数声明保持一致:选择
int
int-const
,两者混合可能会非常混乱。
int const * myFunction(const int*);
int const * (* const functionPointer)(const int *) = myFunction;