指向获取指针参数的函数的指针

时间:2014-02-20 17:12:29

标签: c pointers function-pointers

我正在尝试创建一个函数指针,该指针接受一个指向double的指针作为参数。在main中编写的正确语法是什么?

这就是我所拥有的,但它不断吐出错误。

void (*ptr)(double, double, (*double), (*double) );

1 个答案:

答案 0 :(得分:8)

这与在函数的参数列表中声明double *参数的方式相同:

void (* ptr) (double, double, double *, double *);

可以分配给以下功能:

void something (double w, double x, double *py, double *pz) {
}

在一般情况下,无论它有多复杂,都是如此。例如,一个指向函数的指针,该函数接受int和另一个函数指针(指向一个函数,该函数指向doublevoid *并返回char*)作为参数:

void (* ptr) (int, char * (*) (double, void *));

然后:

char * g (double w, void *) {
    ...
}

void f (int x, char * (* y) (double, void *)) { 
    ...
}

// usage, elsewhere:
ptr = &f;
ptr(0, &g);