簡單LinuxC程序關於簡單計算器(函數指針與回調函數)

實現一個簡單的計算器,使用到函數指針和回調函數。

源代碼:

#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;
}

函數指針可以和函數名一樣使用,函數指針用在多人合作開發時,可以把自己寫的函數的地址給別人,讓其他人可以使用這個函數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章