我确定以前有人问过这个问题,但是很难搜索...所以,我得到的是一个接受函数指针的函数。这个函数指针有 3 个参数。所以,我想传递给另一个函数,相同的指针,但填充了 2 个参数。
所以,像这样:
int func1 (int (*funcptr)(int, int, int)) {
return func2(funcptr(,8,9));
}
int func2 (int (*funcptr)(int)) {
return (*funcptr)(2);
}
编辑:好的,所以我现在使用 lambda
int func2(int (*funcptr2)(int)) {
return (*funcptr2)(2);
}
int func1(int (*funcptr1)(int, int, int)) {
return func2(
[funcptr1](int i)->int {
return (*funcptr1)(i,8,9);
}
);
}
但它给了我
“无法将参数 1转换func1(int (*)(int, int, int))::<lambda(int)>
为”int (*)(int)
int func2(int (*)(int))