gpt4 book ai didi

c++ - 在没有 typedef 的情况下在 C++ 中返回函数指针时出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:45 25 4
gpt4 key购买 nike

我试图在不使用 typedef 的情况下返回指向函数的指针,但编译器 (gcc) 发出了一个奇怪的错误,就好像我无法进行那种设置一样。

备注:使用 typedef 代码有效。

代码:

void catch_and_return(void (*pf)(char*, char*, int&), char *name_one, char* name_two, int& number)(char*, char *, int&)
{
pf(name_one, name_two, number);

return pf;
}

错误:

'catch_and_return' 声明为返回函数的函数

你能给我解释一下为什么编译器不允许我这样做吗?谢谢!

最佳答案

声明你的函数如下:

void (*catch_and_return(void (*pf)(char*, char*, int&), char *name_one, char* name_two, int& number))(char*, char *, int&)
{
pf(name_one, name_two, number);

return pf;
}

返回函数的函数的语法是:

返回函数返回类型(* 函数名称(参数列表))(函数到-返回参数列表)

注意:这种声明乍一看可能很难理解,尽可能使用typedef

关于c++ - 在没有 typedef 的情况下在 C++ 中返回函数指针时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17912179/

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