您的位置:首页 > 理论基础 > 计算机网络

android网络游戏开发——网络通信——回调函数例子

2015-09-16 23:10 691 查看
今天把libevent大概看了一下,发现里面回调函数用的很多,特别是用在异步处理事件中,关于回调函数其实是通过函数指针来实现的,下面是我用回掉函数写的一个两个数的加减乘除的例子,这个例子能很好的说明回调函数的使用,以及使用回调函数的好处:



#include<stdio.h>
#include<stdlib.h>
// 运算结构体
struct count{
int num1;
int num2;
int (*method)(int a, int b); //函数指针
};

int addcb(int a, int b){
return a+b;
}

int subcb(int a, int b){
return a-b;
}

int mulcb(int a, int b){
return a*b;
}

int divcb(int a, int b){
if(b != 0){
return a/b;
}
return 0;
}

int main(){

int result = 0;
struct count mycount;
mycount.num1 = 12;
mycount.num2 = 4;
printf("hello callback num1=%d, num2=%d!\n", mycount.num1, mycount.num2);
// 回调函数指针赋值 add
mycount.method = addcb;
result = mycount.method(mycount.num1, mycount.num2);
printf("callback->add:%d\n", result);
// 回调函数指针赋值 sub
mycount.method = subcb;
result = mycount.method(mycount.num1, mycount.num2);
printf("callback->sub:%d\n", result);
// 回调函数指针赋值 mul
mycount.method = mulcb;
result = mycount.method(mycount.num1, mycount.num2);
printf("callback->mul:%d\n", result);
// 回调函数指针赋值 div
mycount.method = divcb;
result = mycount.method(mycount.num1, mycount.num2);
printf("callback->div:%d\n", result);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: