gpt4 book ai didi

c++ - 如何使用 C/C++ 创建回调函数

转载 作者:太空宇宙 更新时间:2023-11-03 10:31:33 26 4
gpt4 key购买 nike

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/

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