• C基础--函数的回调


    #include <stdio.h>
    /*
    通过回调函数的性质模拟早晨被叫醒的场景
    注意:闹钟和父母的行为是被抽象的
    共同的行为是,到一个时间点被触发。
    */
    /************************************************************************/
    /* 定义回调函数                                                                     */
    /************************************************************************/
    /*闹钟的行为*/
    int clock(int time)
    {
        if (time == 6)
        {
            printf("零零零零。。。。
    ");
            return 1;
        }
        else
        {
            printf("我不出声,只是看着你。。。
    ");
            return 0;
        }
    
    }
    /*父母的行为*/
    int parent(int time)
    {
        if (time >= 6)
        {
            printf("太阳晒屁股了,快起床!
    ");
            return 1;
        }
        else
        {
            printf("我是不叫醒呢,不叫醒呢,还是不叫醒呢。。。
    ");
            return 0;
        }
    
    }
    /************************************************************************/
    /* 定义主调函数                                                                     */
    /************************************************************************/
    /*触发唤醒*/
    int weakup(int(*p_func)(int), int time)
    {
        if (!p_func(time)) /*没有到时间*/
        {
            printf("zzzzzzzzzzzzzzzzz
    ");
            return 0;
        }
        else
        {
            if (time == 6)
            {
                printf("再睡一会儿。。。
    ");
                return 0;
            }
            else
            {
                printf("好吧,你赢了,我起床。。。");
                return 1;
            }
        }
    
    }
    
    /*处理主框架,决定主调函数使用哪个函数指针*/
    int main(int argc, char** argv)
    {
        for (int i = 0; i <= 24; i++)
        {
            printf("当前时间:%d
    ", i);
            if (weakup(clock, i))
            {
                break;
            }
    
            if (weakup(parent, i))
            {
                break;
            }
        }
        system("pause");
        return 0;
    }
  • 相关阅读:
    c内存结构
    Linux普通文件和设备的异同点
    二分查找在字符串中的应用范例
    快排的一种相当简单但不算最快的实现方式
    C程序的存储空间布局
    exit与_exit
    /proc文件系统
    Linux下监控磁盘空间的四个命令
    linux下监控进程需掌握的四个命令
    linux终端下文件不同颜色的含义
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4828079.html
Copyright © 2020-2023  润新知