C语言中的回调函数-根据时间差来调用回调函数,获取时间函数time

简介:

回调函数是一个通过函数指针调用的函数。所谓函数指针,就是指向函数的指针变量;而回调函数是一个函数。

如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

通常,回调函数是在特定环境或者条件下被执行,或者说,调用这个函数需要一定的条件。
回调函数作为参数传递个调用者,由调用者来调用回调函数。

例子代码:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

/**
* 回调函数的测试:在主函数中,根据时间差来判断是否调用回调函数。
**/

//回调函数的定义
void OutputTime(char* timeStr) 
{
	char* s = "hello world!";
	if (timeStr) {
        printf("hello world,%s\n",timeStr);
	}
    
}

//回调函数的调用者
void CallBack(void (*CB)())
{
    time_t cur_time;
    char *pc ;

    cur_time = time(NULL); //获取系统当前时间
    pc=ctime(&cur_time) ;


    CB(pc);
}

//主函数
int main(int argc,char* argv[])
{
	time_t first, second;  //typedef time_t long
 
   first = time(NULL);  //获取系统当前时间
   while(1) {
       second = time(NULL); //获取系统当前时间
       float diff = difftime(second,first);
       //根据时间差来判断是否调用回调函数
       if (diff >=3) { //3s
           printf("The difference is: %f\n",diff);
           
           //调用回调函数
           CallBack(OutputTime);
           break;
       }
   }
    
   return 0;
}

运行结果:

The difference is: 3.000000

hello world,Tue Nov 17 19:05:43 2009

 说明:

1)time()函数用于获取时间;

2)difftime()函数用于计算时间差;

3)OutputTime()函数是回调函数,它的功能是输出参数为timeStr的时间字符串;

4)CallBack()函数是调用者,它的参数是一个指针,这个参数就是最后要被执行的回调函数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liranke

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值