我有一个包含三个功能的程序:main()
,returnFunction()
和functionToBeReturned()
。 main()
必须致电returnFunction()
。我们可以使用functionToBeReturned()
作为returnFunction()
的返回值吗?
int functionToBeReturned()
{
// some code here....
return value;
}
int returnFunction()
{
// some code here....
return functionToBeReturned();
}
int main()
{
returnFunction();
}
没关系......
答案 0 :(得分:3)
是的!函数指针是C和C ++的一部分。使用函数指针,您可以从其他函数返回函数,并将它们存储在类等中。Here是一篇关于它们的文章。
returnFunction
在这个程序中,typedef int (*returns_int_t)();
是一个不带任何东西的函数,它返回一个不带任何东西并返回int的函数。涉及函数指针的声明在C和C ++中真的很难看!为清晰起见,您可以考虑这样做:
returns_int_t
这为函数指针定义名称#include <iostream>
using namespace std;
typedef int (*returns_int_t)();
int functionToBeReturned() {
cout << "hello!" << endl;
}
returns_int_t returnFunction() {
return functionToBeReturned;
}
int main() {
returns_int_t function = returnFunction();
function();
}
,该函数不带任何内容并返回int。然后,你可以这样做:
__STDC_IEC_559__
完全相同的事情。