可能重复:
How do you pass a function as a parameter in C?
假设我有一个函数叫做
void funct2(int a) {
}
void funct(int a, (void)(*funct2)(int a)) {
;
}
字符串
调用这个函数的正确方法是什么?我需要设置什么才能让它工作?
可能重复:
How do you pass a function as a parameter in C?
假设我有一个函数叫做
void funct2(int a) {
}
void funct(int a, (void)(*funct2)(int a)) {
;
}
字符串
调用这个函数的正确方法是什么?我需要设置什么才能让它工作?
4条答案
按热度按时间c0vxltue1#
通常,为了可读性,你可以使用typedef来定义自定义类型,如下所示:
字符串
当定义这个typedef时,你希望你将指向的函数原型的返回参数类型,以 lead typedef标识符(在本例中是void类型)和原型参数以 follow 它(在本例中是“int args”)。
当使用这个typedef作为另一个函数的参数时,你可以这样定义你的函数(这个typedef几乎可以像任何其他对象类型一样使用):
型
然后像正常函数一样使用,如下所示:
型
因此,整个代码示例如下所示:
型
并打印出:
型
deyfvvtc2#
另一种方法是使用函数库。
第一个月
下面是一个例子,我们将在
funct
中使用funct2
:字符串
产出:
型
wqsoz72f3#
一个更详细和一般的(不是抽象的)例子
字符串
v64noz0r4#
检查这个
字符串