发布于 2005-11-24 13:38:11
0楼
沉默是金--高手啊!忍不住手痒我也发一个
回调函数其实是函数中可以嵌套别的函数,根据嵌套不同函数,可得到不同结果。
下面的例子中TestCallBack是主函数,CB1、CB2为回调函数。
当调用TestCallBack(CB1)得到的结果的输出数1到10的2倍。
当调用TestCallBack(CB2)得到的结果的输出数1到10的平方。
这样的话主函数只需要编写一个,而根据不同情况编制不同回调函数。所以回调函数在需要遍历记录,并进行不同操作时相当有用。
------------------------------------------------TestCallBack.fct-----------------------------------------
void TestCallBack(BOOL (CB)(int num))
{
int i;
for (i=1;i<=10;i++)
{
CB(i);
}
}
---------------------------------------------CB1.fct-------------------------------------------------------
void CB1(int num)
{
printf("\r\nThe 2 times of number is %d",num*2);
}
---------------------------------------------CB2.fct-------------------------------------------------------
void CB2(int num)
{
printf("\r\nThe Square of num is %d",num*num);
}
非淡泊无以明志,非宁静无以致远