返回函数指针类型

东南

我经常发现有必要编写返回函数指针的函数。每当我使用时,我使用的基本格式是:

typedef int (*function_type)(int,int);

function_type getFunc()
{
   function_type test;
   test /* = ...*/;
   return test;
}

但是,这在处理大量函数时可能会变得很麻烦,因此我不想不必为每个函数(或函数的每个类)声明typedef

我可以删除typedef并将函数中返回的局部变量声明为:int (*test)(int a, int b);使函数主体如下所示:

{
     int (*test)(int a, int b);
     test /* = ...*/;
     return test;
}

但是我不知道该为函数的返回类型设置什么。我试过了:

int(*)(int,int) getFunc()
{
    int (*test)(int a, int b);
    test /* = ...*/;
    return test;
}

但这会报告语法错误。我如何在不为函数指针声明typedef的情况下为此类函数声明返回类型。可能吗 还要注意,我知道对于每个函数来说,声明typedef似乎更加干净,但是,我非常小心地将我的代码结构化为尽可能简洁并易于遵循。我想消除typedef的原因是它们通常仅用于声明检索函数,因此在代码中显得多余。

埃里克·波斯蒂奇(Eric Postpischil)
int (*getFunc())(int, int) { … }

即可提供您要求的声明。另外,正如ola1olsson所指出的那样,插入void以下内容会很不错

int (*getFunc(void))(int, int) { … }

这表示getFunc可能不带任何参数,这可以帮助避免错误,例如有人无意中写getFunc(x, y)而不是getFunc()(x, y)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

接收和返回函数指针的函数指针的类型?

来自分类Dev

返回函数指针数组

来自分类Dev

指向函数的指针,返回函数指针

来自分类Dev

指向函数的指针,返回函数指针

来自分类Dev

返回函数指针语法的函数

来自分类Dev

从类成员函数返回函数指针

来自分类Dev

AngularJS:基于输入类型的返回函数

来自分类Dev

Typescript从参数返回函数的类型

来自分类Dev

指针返回类型的函数

来自分类Dev

C ++ 11中的函数返回函数指针

来自分类Dev

返回函数的函数,返回函数等

来自分类Dev

函数返回函数?

来自分类Dev

TypeScript:如何键入返回函数的返回类型

来自分类Dev

引用类型返回函数:如何返回(可选)对象

来自分类Dev

我可以编写返回函数的函数类型吗?

来自分类Dev

为什么在函数指针或返回函数指针的函数之前放几十个*?

来自分类Dev

函数返回的数组指针类型

来自分类Dev

如何编写不使用typedefs即可返回函数指针的函数指针?

来自分类Dev

我如何执行从区分的联合返回函数的类型

来自分类Dev

如何从接口返回函数的泛型/动态类型

来自分类Dev

具有正确返回函数类型的元组参数

来自分类Dev

Typescript为返回函数类型引发错误

来自分类Dev

如何从接口返回函数的泛型/动态类型

来自分类Dev

枚举中的Java变量返回函数类型

来自分类Dev

返回函数的代码

来自分类Dev

返回函数-PHP

来自分类Dev

用 && 返回函数?

来自分类Dev

指向函数的函数指针,返回指向所述函数类型的指针

来自分类Dev

返回与不返回函数?