2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言定时器回调函数的参数 定时器的简单实现即回调函数的运用

c语言定时器回调函数的参数 定时器的简单实现即回调函数的运用

时间:2022-09-14 05:03:53

相关推荐

c语言定时器回调函数的参数 定时器的简单实现即回调函数的运用



这两天在 研究回调函数就想实现简单的定时器,如下是鄙人的程序望指教。ios

#include

#include

using namespace std;app

#define MAXNUM 256函数

typedef void (*timerProcessFunc)(void*);spa

typedef struct

{

unsigned int id;

int timeout; //毫秒

}MyTimer;回调函数

static MyTimer timerList[MAXNUM] = {0};it

int initTimer(MyTimer* timer, int timeout)

{

if(!timer || timeout < 0) return false;

timer->timeout = timeout;

for(int i = 0; i < MAXNUM; i++)

{

if(timerList[i].id == 0)

{

timer->id = i;

timerList[i] = *timer;

return i;

}

}

return -1;

}io

void timerProcess(void* userPara) //回调函数

{

cout << "定时了" << *(double*)userPara << "毫秒" << endl;

}stream

void startTimer(int timerID, timerProcessFunc timerapp)

{

clock_t start,finish;

double totaltime;

start = clock();List

/**********计时开始*****************/

while(1)

{

finish = clock();

totaltime = (double)(finish-start);

if(totaltime >= timerList[timerID].timeout)

{

timerapp(&totaltime);

break;

}

}

/********************************/

} 定时器

void killTimer(int timerID)

{

timerList[timerID].id = 0;

timerList[timerID].timeout = 0;

}

int main()

{

MyTimer t;

int id;

if((id = initTimer(&t, 10000)) != -1)

startTimer(id, timerProcess);

return 0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。