使用回调函数实现一个简单的计算器;

一个小的计算程序,用了回调函数;查了很久才模模糊糊户的知道了回调函数的意思和用法!
#include<stdio.h> //int add(int ,int ) int add(int a,int b ) { return a + b; } int sub(int a,int b) { return a - b; } int mul(int a ,int b) { return a * b; } int div(int a,int b) { return a / b; } //下面这个函数我把他看作为中间函数(当然也许是错误的)也可以把他看成一个系统,当main中传来一个回调函数(像参数一样),他会先进入这个中间函数,然后这个中间函数这里通过函数指针去调用回调函数; int func(int (*pfunc)(int , int),int a,int b) { int res = pfunc(a,b); return res; } int main() { int a = 10; int b = 20; char ch; int res; scanf("%c",&ch); switch(ch) { case'+': res = func(add,a,b); //把回调函数像参数一样传入中间函数func()。可以这么理解,在传入一个回调函数之前,中间函数是不完整的。换句话说,程序可以在运行时,通过登记不同的回调函数,来决定、改变中间函数的行为,也就是通过func()当中的函数指针pfunc()来指向不同的功能函数,从而调用; break; case'-': res = func(sub,a,b); break; case'*': res = func(mul,a,b); break; case'/': res = func(div,a,b); break; } printf("%d\n",res); putchar('\n'); return 0; }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值