在C函数指针中传递更多参数,可以通过以下方法实现:
#include<stdio.h>
typedef struct {
int arg1;
int arg2;
int arg3;
} Args;
void my_function(Args args) {
printf("arg1: %d, arg2: %d, arg3: %d\n", args.arg1, args.arg2, args.arg3);
}
int main() {
Args args = {1, 2, 3};
void (*function_pointer)(Args) = my_function;
function_pointer(args);
return 0;
}
#include<stdio.h>
typedef void (*Callback)(int, int, int);
void my_function(int arg1, int arg2, int arg3) {
printf("arg1: %d, arg2: %d, arg3: %d\n", arg1, arg2, arg3);
}
void call_function_with_args(Callback callback, int arg1, int arg2, int arg3) {
callback(arg1, arg2, arg3);
}
int main() {
call_function_with_args(my_function, 1, 2, 3);
return 0;
}
这两种方法都可以实现在C函数指针中传递更多参数。第一种方法使用结构体将多个参数封装成一个结构体,然后将结构体作为函数的参数。第二种方法使用回调函数,将多个参数作为回调函数的参数,然后在调用函数时传递回调函数。
领取专属 10元无门槛券
手把手带您无忧上云