您的位置:首页 > 其它

C基础--函数的回调

2015-09-22 09:50 267 查看
#include <stdio.h>
/*
通过回调函数的性质模拟早晨被叫醒的场景
注意:闹钟和父母的行为是被抽象的
共同的行为是,到一个时间点被触发。
*/
/************************************************************************/
/* 定义回调函数                                                                     */
/************************************************************************/
/*闹钟的行为*/
int clock(int time)
{
if (time == 6)
{
printf("零零零零。。。。\n");
return 1;
}
else
{
printf("我不出声,只是看着你。。。\n");
return 0;
}

}
/*父母的行为*/
int parent(int time)
{
if (time >= 6)
{
printf("太阳晒屁股了,快起床!\n");
return 1;
}
else
{
printf("我是不叫醒呢,不叫醒呢,还是不叫醒呢。。。\n");
return 0;
}

}
/************************************************************************/
/* 定义主调函数                                                                     */
/************************************************************************/
/*触发唤醒*/
int weakup(int(*p_func)(int), int time)
{
if (!p_func(time)) /*没有到时间*/
{
printf("zzzzzzzzzzzzzzzzz\n");
return 0;
}
else
{
if (time == 6)
{
printf("再睡一会儿。。。\n");
return 0;
}
else
{
printf("好吧,你赢了,我起床。。。");
return 1;
}
}

}

/*处理主框架,决定主调函数使用哪个函数指针*/
int main(int argc, char** argv)
{
for (int i = 0; i <= 24; i++)
{
printf("当前时间:%d\n", i);
if (weakup(clock, i))
{
break;
}

if (weakup(parent, i))
{
break;
}
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: