我经常发现需要编写返回函数指针的函数。无论何时,我使用的基本格式是:
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,是因为它们通常只用于声明检索函数,因此在代码中似乎是多余的。