【发布时间】:2021-09-08 22:21:08
【问题描述】:
我想做这样的事情:
int a(int a, int b)
{
return 0;
}
int main()
{
int n = 2;
int (*b)(int) = a(a = n);
return 0;
}
我想实现它,因为我希望能够将一个函数作为参数传递给另一个函数,但定义了一些值。
我怎样才能实现它?
【问题讨论】:
-
int (*b)(int) = [](int b) { return a(2, b); }; -
顺便说一句,您应该使用不同的描述性名称。
-
@IgorTandetnik 谢谢,但如果我想捕获一个变量,它就不起作用。诠释 n = 2; int (*b)(int) = [n](int b) { return a(n, b); };
-
在这种情况下,让它
auto b = ...;它不再是一个普通的函数指针(它不可能,因为简单的实际原因,普通函数指针中也没有空格存储捕获的值)。
标签: c++ function pointers arguments function-pointers