我的讲师提到在其他功能中使用函数作为参数。 (我不是指使用指针。是否可能?我在下面显示)我不明白他做了什么。谁能用例子解释一下?谢谢大家的赞赏。
使用风格是:
int test(double abc(double)){
// bla bla
}
功能是:
double abc(double n){
// function main
}
这些例子是我写的,我不确定他们是对的。
答案 0 :(得分:4)
此功能声明:
int test(double abc(double))
{
// bla bla
}
相当于:
int test(double (*abc)(double))
{
// bla bla
}
abc
参数是函数指针类型(double (*)(double))
)的参数。
对于C标准参考:
(C99,6.7.5.3p8)"参数声明为"函数返回类型"应调整为"指向函数返回类型",如6.3.2.1。"
答案 1 :(得分:-1)
如果使用指针,可以稍后在函数测试中调用该函数。
typedef double (*func_type)(double);
int test(func_type func) {
// bla bla
cout << func(3);
}
// 2 call
test(double_func)
如果要在调用test之前调用该函数,则只需定义:
int test(double) {
// bla bla
cout << double;
}
// 2 call
test(double_fun(2.0));
正确的选择取决于你的意图