gpt4 book ai didi

C++ 使用函数作为参数

转载 作者:可可西里 更新时间:2023-11-01 15:47:55 26 4
gpt4 key购买 nike

Possible Duplicate:
How do you pass a function as a parameter in C?

假设我有一个函数叫做

void funct2(int a) {

}


void funct(int a, (void)(*funct2)(int a)) {

;


}

调用此函数的正确方法是什么?我需要设置什么才能让它工作?

最佳答案

通常,为了可读性,您使用 typedef 来定义自定义类型,如下所示:

typedef void (* vFunctionCall)(int args);

定义此 typedef 时,您希望将要指向的函数原型(prototype)的返回参数类型引导 typedef 标识符(在本例中为 void 类型)和原型(prototype)参数 < em>关注它(在本例中为“int args”)。

当使用这个 typedef 作为另一个函数的参数时,你可以像这样定义你的函数(这个 typedef 几乎可以像任何其他对象类型一样使用):

void funct(int a, vFunctionCall funct2) { ... }

然后像普通函数一样使用,如下所示:

funct2(a);

所以整个代码示例如下所示:

typedef void (* vFunctionCall)(int args);

void funct(int a, vFunctionCall funct2)
{
funct2(a);
}

void otherFunct(int a)
{
printf("%i", a);
}

int main()
{
funct(2, (vFunctionCall)otherFunct);
return 0;
}

然后打印出来:

2

关于C++ 使用函数作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com