函数原型在没有指针的函数中使用

时间:2014-10-25 05:41:51

标签: c function

我的讲师提到在其他功能中使用函数作为参数。 (我不是指使用指针。是否可能?我在下面显示)我不明白他做了什么。谁能用例子解释一下?谢谢大家的赞赏。

使用风格是:

    int test(double abc(double)){
    // bla bla
}

功能是:

double abc(double n){
// function main
}

这些例子是我写的,我不确定他们是对的。

2 个答案:

答案 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));

正确的选择取决于你的意图