有人可以告诉我这是否是这种数据类型的正确定义,以及我初始化它的方式是否正确?
typedef int const * (* const DataOne)(const int *);
=>上面的数据类型显示了一个指向函数的常量指针,该函数将指向常量int
的指针作为参数,并返回指向常量int
的指针。
=>初始化和声明:DataOne = &myFunction(7);
答案 0 :(得分:8)
typedef int const * (* const DataOne)(const int *);
=>上面的数据类型显示了一个指向函数的常量指针,该函数将指向常量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;