C 带参数的回调
我试图弄清楚如何在C中使用带参数的回调。下面的方法不起作用。最好的归档方式是什么?(传递回调函数的参数)C 带参数的回调,c,callback,C,Callback,我试图弄清楚如何在C中使用带参数的回调。下面的方法不起作用。最好的归档方式是什么?(传递回调函数的参数) #包括 无效呼叫方(内部(*cc)(内部a)){ cc(a); } int blub(int a){ printf(“%i”,a); 返回1; } int main(int argc,字符**argv) { 呼叫者(blub(5)),; 返回1; } 调用者需要一个函数指针,而您给它一个整数。您只需呼叫方(blub) 另外,int(*cc)(int a)是无效语法 void caller(i
#包括
无效呼叫方(内部(*cc)(内部a)){
cc(a);
}
int blub(int a){
printf(“%i”,a);
返回1;
}
int main(int argc,字符**argv)
{
呼叫者(blub(5)),;
返回1;
}
调用者
需要一个函数指针,而您给它一个整数。您只需呼叫方(blub)
另外,int(*cc)(int a)
是无效语法
void caller(int (*cc)(int), int a) {
cc(a);
}
int main(int argc, char** argv)
{
caller(blub, 5);
return 1;
}
可能是与代码最接近的工作方式。您在传递函数之前进行调用,而不是传递回调函数本身。试试这个:
#include <stdio.h>
void caller(int (*cc)(int ),int a) {
cc(a);
}
int blub(int a) {
printf("%i", a);
return 1;
}
int main(int argc, char** argv)
{
caller(blub, 1000);
return 1;
}
#include <stdio.h>
void caller(int (*cc)(int a), int a) {
cc(a);
}
int blub(int a) {
printf("%i", a);
return 1;
}
int main(int argc, char** argv) {
caller(&blub, 5);
return 1;
}
#包括
无效调用方(int(*cc)(int),int a){
cc(a);
}
int blub(int a){
printf(“%i”,a);
返回1;
}
int main(int argc,字符**argv)
{
来电者(blub,1000);
返回1;
}
不能将参数转换为函数指针。试试这个:
#include <stdio.h>
void caller(int (*cc)(int ),int a) {
cc(a);
}
int blub(int a) {
printf("%i", a);
return 1;
}
int main(int argc, char** argv)
{
caller(blub, 1000);
return 1;
}
#include <stdio.h>
void caller(int (*cc)(int a), int a) {
cc(a);
}
int blub(int a) {
printf("%i", a);
return 1;
}
int main(int argc, char** argv) {
caller(&blub, 5);
return 1;
}
#包括
无效调用方(int(*cc)(int a),int a){
cc(a);
}
int blub(int a){
printf(“%i”,a);
返回1;
}
int main(int argc,字符**argv){
呼叫者(&blub,5);
返回1;
}
I将typedefint(*callback_t)(int)代码>