我看到了,但是它从未指定如何声明返回函数指针的函数指针(它只是定义了如何创建返回函数指针的函数)。
虽然使用typedef可能更明智,但我对没有typedef的语法感兴趣。
这是我得到的最接近的:
struct function_hash_table {
unsigned int(*(*getFunction)(Type, Type, Type))( char *name );
}
(实际上是什么类型与这个问题无关)。
但是,当我尝试这样称呼它时:
hash_table.getFunction( "Test" );
我因为参数太少和参数类型错误而出错。
澄清:
unsigned int(*hash_get_function(Type, Type, Type))(char *name)
适用于实际功能,并在链接中进行了说明。但是,我应该如何声明一个引用此类定义的函数指针?
如何声明返回函数指针的函数指针
不使用typedef
就可以声明为
Type (* (*funcPtr)(Type, Type) ) (Type);
声明读为:funcPtr
是指向需要两个类型的参数Type
并返回一个指向函数的指针,该函数需要一个类型的参数Type
并返回Type
。
如果要声明一个返回指针的函数,则
Type (* func(Type, Type) ) (Type);
声明为:func
是一个函数,它接受两个type的参数Type
并返回一个指向该函数的指针,该函数接受type的一个参数Type
并返回Type
。
现在您可以分配func
给funcPtr
functPtr = func;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句