您的位置:首页 > 运维架构 > Linux

简单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;
}
函数指针可以和函数名一样使用,函数指针用在多人合作开发时,可以把自己写的函数的地址给别人,让其他人可以使用这个函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息