简单LinuxC程序关于简单计算器(函数指针与回调函数)
2017-07-20 22:53
218 查看
实现一个简单的计算器,使用到函数指针和回调函数。
源代码:
#include <stdio.h>
float add (float a,float b)
{
return a + b;
}
float sub (float a,float b)
{
return a - b;
}
float mul (float a,float b)
{
return a * b;
}
float div (float a,float b)
{
return a / b;
}
//回调函数
float func (float (*p)(float a,float b),float a,float b)//函数指针作为函数参数
{
return p(a,b);
}
float main()
{
float a;
float b;
float res;
char ch;
printf ("input num1:");
scanf ("%f",&a);
printf ("input num2:");
scanf ("%f",&b);
printf ("input op:");
scanf ("%c",&ch);
switch (ch)
{
case '+':
res = func (add,a,b);//函数名是地址,代表函数空间的入口地址,可以用指针接收
break;
case '-':
res = func (sub,a,b);
break;
case '*':
res = func (mul,a,b);
break;
case '/':
res = func (div,a,b);
break;
}
printf ("res = %g\n",res);
return 0;
}
函数指针可以和函数名一样使用,函数指针用在多人合作开发时,可以把自己写的函数的地址给别人,让其他人可以使用这个函数。
源代码:
#include <stdio.h>
float add (float a,float b)
{
return a + b;
}
float sub (float a,float b)
{
return a - b;
}
float mul (float a,float b)
{
return a * b;
}
float div (float a,float b)
{
return a / b;
}
//回调函数
float func (float (*p)(float a,float b),float a,float b)//函数指针作为函数参数
{
return p(a,b);
}
float main()
{
float a;
float b;
float res;
char ch;
printf ("input num1:");
scanf ("%f",&a);
printf ("input num2:");
scanf ("%f",&b);
printf ("input op:");
scanf ("%c",&ch);
switch (ch)
{
case '+':
res = func (add,a,b);//函数名是地址,代表函数空间的入口地址,可以用指针接收
break;
case '-':
res = func (sub,a,b);
break;
case '*':
res = func (mul,a,b);
break;
case '/':
res = func (div,a,b);
break;
}
printf ("res = %g\n",res);
return 0;
}
函数指针可以和函数名一样使用,函数指针用在多人合作开发时,可以把自己写的函数的地址给别人,让其他人可以使用这个函数。
相关文章推荐
- 简单LinuxC程序关于倒置句子中的单词位置(指针的使用)
- 简单LinuxC程序关于逆序一个中英混合字符串
- 一个简单的关于函数指针的实例
- 简单LinuxC程序关于倒置句子中的单词位置(字符串逆序应用)
- C语言中函数指针、指针函数、回调函数的简单含义
- 简单LinuxC程序关于加密(将任意长字符转换为定长整数)
- 简单LinuxC程序关于报数问题
- linux下关于readlink函数获取运行程序路径
- 20150124 【 Linux-C 函数指针 】 模拟快速排序程序--快排
- 简单LinuxC程序关于进制转换(递归函数)
- 关于VS2017编译linux程序时,错误提示信息太简单,看不出错误原因的解决办法
- 【Linux】关于理解fork()函数的简单例子
- 简单LinuxC程序关于统计0~n有多少个0~9(main函数的参数)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于DELPHI中的类对象以及类指针简单探讨总结。
- 一个C++程序例子——指向函数的指针、含有可变形参的函数(备查)
- 小程序大问题,MSDN中一个小小示例所带来的疑问,一个关于DataList的一个简单应用
- Linux平台下编译运行wxWidgets简单窗口程序
- 小程序大问题,MSDN中一个小小示例所带来的疑问,一个关于DataList的一个简单应用
- redhat 开机启动程序 Linux中的简单备份