Iam*_*ent 3 c typedef function-pointers
有人能告诉我这是否是这个数据类型的正确定义,以及我初始化它的方式是否正确?
typedef int const * (* const DataOne)(const int *);
Run Code Online (Sandbox Code Playgroud)
=>上面的数据类型显示了一个指向函数的常量指针,该函数将指向常量的指针int作为参数并返回指向常量的指针int.
=>初始化和声明: DataOne = &myFunction(7);
typedef int const * (* const DataOne)(const int *);
Run Code Online (Sandbox Code Playgroud)
=>上面的数据类型显示了一个指向函数的常量指针,该函数将指向常量int的指针作为参数并返回指向常量int的指针.
正确.
=>初始化和声明:DataOne =&myFunction(7);
不正确.函数指针赋值不能在函数调用上进行(即,您不能为参数提供任何实际参数).此外,DataOne是一种类型,而不是变量.所以,它应该看起来像这样:
int const * myFunction(const int*);
DataOne myPointer = myFunction; // &myFunction would also work
Run Code Online (Sandbox Code Playgroud)
声明没有类型的等效函数指针:
int const * myFunction(const int*);
int const * (* const functionPointer)(const int *) = myFunction;
Run Code Online (Sandbox Code Playgroud)