gpt4 book ai didi

c - 你如何编写一个不使用 typedef 的返回函数指针的函数指针?

转载 作者:太空宇宙 更新时间:2023-11-04 02:36:23 26 4
gpt4 key购买 nike

我看到了this , 但它从未指定如何声明返回函数指针的函数指针(它只是定义了如何创建返回函数指针的函数)。

虽然使用 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)

适用于实际功能并在链接中进行了解释。但是,我应该如何声明引用此类定义的函数指针?

最佳答案

how to declare a function pointer that returns a pointer-to-a-function

不使用 typedef 你可以声明为

Type (* (*funcPtr)(Type, Type) ) (Type); 

声明读作:funcPtr 是一个指向函数的指针,该函数需要两个 Type 类型的参数,并返回一个指向函数的指针,该函数需要一个参数输入 Type 并返回 Type

如果你想声明一个返回指针的函数,那么

Type (* func(Type, Type) ) (Type);   

声明读作:func 是一个接受两个 Type 类型参数的函数,并返回一个指向接受 类型参数的函数的指针输入 并返回Type

现在你可以将func赋值给funcPtr

functPtr = func;

关于c - 你如何编写一个不使用 typedef 的返回函数指针的函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36669469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com