千家信息网

C语言如何运用回调函数实现计算器

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍了C语言如何运用回调函数实现计算器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。回调函数概念:回调函数是一个通过函数指
千家信息网最后更新 2025年11月10日C语言如何运用回调函数实现计算器

这篇文章主要介绍了C语言如何运用回调函数实现计算器,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

回调函数概念:

回调函数是一个通过函数指针调用的函数,也就是将函数的地址作为参数传递给另一个函数,当这个指针回来调用其指向的函数时,称为回调函数。

本次制作计算器的功能:

1.add -- 加法

2.sub -- 减法

3.mul -- 乘法

4.div -- 除法

0.exit -- 退出

具体来通过代码讲解:

(1)首先写一个菜单函数,在运行程序时打印菜单

void menu(){ printf("*************************\n"); printf("*******   1.add   *******\n"); printf("*******   2.sub   *******\n"); printf("*******   3.mul   *******\n"); printf("*******   4.div   *******\n"); printf("*******   0.exit  *******\n"); printf("*************************\n");}

(2)写好四个关于加、减、乘、除操作的函数

int Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}int Mul(int x, int y){ return x * y;}int Div(int x, int y){ return x / y;}

(3)写主函数,定义input是你要输入的数,用来选择计算器的功能;然后使用do while循环,内嵌菜单函数。

int main(){ int input = 0; do {  menu();  printf("请选择你要进行的操作:\n");  scanf("%d",&input); } while (input); return 0;}

(4)用switch语句定义每个数字相对应的功能;default代表其他选项;Calc函数是我们接下来要写的回调函数。

int main(){ int input = 0; do {  menu();  printf("请选择你要进行的操作:\n");  scanf("%d",&input);  switch (input)  {  case 1:   Calc(Add);   break;  case 2:   Calc(Sub);   break;  case 3:   Calc(Mul);   break;  case 4:   Calc(Div);   break;  case 0:   printf("退出计算器\n");   break;  default:   printf("选择错误,请重新选择!\n");   break;  } } while (input); return 0;}

(5)定义Calc函数,用一个函数指针作为参数接收(Add、Sub、Mul、Div)函数的地址;pf作为函数指针直接指向相应函数;然后输出结果;(这个回调函数csdn似乎识别不了,编译器是可以的,所以就以注释的形式写了,后面也是一样)。

void Calc()  //括号内容:int(*pf)(int, int){ int x = 0; int y = 0; int ret = 0; printf("请输入2个操作数:\n"); scanf("%d %d",&x,&y); ret = pf(x,y); printf("%d\n",ret);}

最后送上全部的代码小小总计一下:

#include  void menu(){ printf("*************************\n"); printf("*******   1.add   *******\n"); printf("*******   2.sub   *******\n"); printf("*******   3.mul   *******\n"); printf("*******   4.div   *******\n"); printf("*******   0.exit  *******\n"); printf("*************************\n");} int Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}int Mul(int x, int y){ return x * y;}int Div(int x, int y){ return x / y;} void Calc()  //括号内容:int(*pf)(int, int){ int x = 0; int y = 0; int ret = 0; printf("请输入2个操作数:\n"); scanf("%d %d",&x,&y); ret = pf(x, y); printf("%d\n", ret);} int main(){ int input = 0; do {  menu();  printf("请选择你要进行的操作:\n");  scanf("%d",&input);  switch (input)  {  case 1:   Calc(Add);   break;  case 2:   Calc(Sub);   break;  case 3:   Calc(Mul);   break;  case 4:   Calc(Div);   break;  case 0:   printf("退出计算器\n");   break;  default:   printf("选择错误,请重新选择!\n");   break;  } } while (input); return 0;}

感谢你能够认真阅读完这篇文章,希望小编分享的"C语言如何运用回调函数实现计算器"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

函数 选择 计算器 指针 篇文章 功能 菜单 输入 语言 代码 内容 参数 地址 括号 指向 操作数 错误 接下来 乘法 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 杭州多点控制视频系统服务器 无线充软件开发培训 幼儿园安全风险隐患数据库 帮我找一下国家网络安全周视频 地下综合管廊网络安全咨询服务 建立数据库新建连接 大话服务器人数 网络安全注意内容手抄报 税务系统信息技术数据库题 腾讯分布式数据库获奖 理正安装数据库组件未响应 阿里云轻量级应用服务器香港补货 传奇角色数据库怎么打开 全区网络安全存在问题 买别人服务器安全吗 崇明区直销软件开发优势 企业级管理文件服务器 wan口断开服务器无响应 成都软件开发项目经理招聘 ssctf全国网络安全大赛 mysql 数据库映射 建平安卓软件开发 是一个软件开发公司英文翻译 燃烧的意志服务器怎么选择 开展网络安全座谈会 软件开发的非功能需求 网络安全想转软件开发难吗 炸迷你服务器 慧眼识骗局网络安全教案 热血江湖潘多拉服务器合并
0