码迷,mamicode.com
首页 > 其他好文 > 详细

C基础--函数的回调

时间:2015-09-22 10:13:14      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

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

 

C基础--函数的回调

标签:

原文地址:http://www.cnblogs.com/zhuyaguang/p/4828079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!