use*_*555 2 c pointers function-pointers
我正在尝试创建一个函数指针,该指针接受指向double的指针作为参数.写入的正确语法是什么main?
这就是我所拥有的,但它不断吐出错误.
void (*ptr)(double, double, (*double), (*double) );
Run Code Online (Sandbox Code Playgroud)
它与double *在函数的参数列表中声明参数的方式相同:
void (* ptr) (double, double, double *, double *);
Run Code Online (Sandbox Code Playgroud)
可以分配给以下功能:
void something (double w, double x, double *py, double *pz) {
}
Run Code Online (Sandbox Code Playgroud)
在一般情况下,无论它有多复杂,都是如此.例如,指向一个函数的指针,该函数接受int另一个函数指针(指向一个带a double和a void *并返回a 的函数char*)作为参数:
void (* ptr) (int, char * (*) (double, void *));
Run Code Online (Sandbox Code Playgroud)
然后:
char * g (double w, void *) {
...
}
void f (int x, char * (* y) (double, void *)) {
...
}
// usage, elsewhere:
ptr = &f;
ptr(0, &g);
Run Code Online (Sandbox Code Playgroud)