C\C++ 是否支持回调函数机制?以及如何创建它? 我写了几个代码,用 C++ 创建回调函数,但它失败了..
#include<iostream>
using namespace std;
void callee()
{
printf("callee\n");
printf("calleeeeeeeeee\n");
}
void callback(void* func)
{
printf("callback\n");
}
int main()
{
void (*call)(void*);
void (*call2)(void);
call2 = &callee;
call = &callback;
call((void*)call2);
getchar();
return 0;
}
最佳答案
我不懂C++,我写了一些C代码,希望对你有帮助
#include <stdio.h>
void call( int, void ( *f )( int ) );
void called( int );
int main( int argc, char const *argv[] ){
printf( "start\n" );
call( 1, called );
printf( "end\n" );
getchar();
return 0;
}
void call( int a, void ( *f )( int ) ){
printf( "doing stuff\n" );
printf( "a: %d\n", a );
printf( "going to call back\n" );
f( a * 2 );
}
void called( int b ){
printf( "b: %d\n", b );
printf( "b*2: %d\n", b*2 );
printf( "call back function being called\n" );
}
在函数中调用回调函数无非是有一个函数指针,当你完成计划的工作时调用该函数。
我修改了代码并使其更加清晰,以显示您将如何使用回调。
这是您将看到的结果,如果您编译并运行它:
start
doing stuff
a: 1
going to call back
b: 2
b*2: 4
call back function being called
end
好吧,要么作者编辑了问题,要么有人为他编辑了问题,不再有 C 标签。如果您不想看到纯 C 代码,请忽略此答案。我只是把它留在这里,以防有人感兴趣。
关于c++ - 如何使用 C/C++ 创建回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15049568/