我已经阅读了有关函数指针语法的内容,但无法在我的代码中工作。
该视频解释了语法是:
type func0(type0 arg0, ..., typen argn){
// do something
return a_thing;
}
Run Code Online (Sandbox Code Playgroud)
然后在另一个函数中传递函数指针是:
type func1((*func0)(type0 arg0, ..., typen argn), another args){
//do something
func0(arg0, ..., argn);
return a_thing;
}
Run Code Online (Sandbox Code Playgroud)
但是后来,我读了第一个关于C 中的函数指针如何工作?,语法为:
type func1((*func0)(type0 arg0, ..., typen argn), another args) {
//do something
(*func0)(arg0, ..., argn);
return a_thing;
}
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为您正在取消引用您正在传递的指针。最后, C 函数指针调用语法中的第一个答案解释了该语法可以是:
&func
func
*func
**func
Run Code Online (Sandbox Code Playgroud)
我不明白哪些信息是正确的。我有代码:
double *func1((*func0)(double), double *var) {
double *temp = malloc(some_size);
for(int i = 0; i < some_cycles; ++i) …Run Code Online (Sandbox Code Playgroud)