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;
}
c语言定时器回调函数的参数,定时器的简单实现即回调函数的运用相关推荐
- Python基础知识——函数的基本使用、函数的参数、名称空间与作用域、函数对象与闭包、 装饰器、迭代器、生成器与yield、函数递归、面向过程与函数式(map、reduce、filter)
文章目录 1 函数的基本使用 一 引入 二 定义函数 三 调用函数与函数返回值 2 函数的参数 一 形参与实参介绍 二 形参与实参的具体使用 2.1 位置参数 2.2 关键字参数 2.3 默认参数 2 ...
- python中函数的参数_Python小知识-Python中的函数参数(基础篇)
0 总述 这个题目分为2篇,第一篇基本上是概念以及实例,有个相对系统的认识,第二篇想写的深入一些,不同参数类型的区别以及和c/c++的函数参数对比下异同-下面开始是第一篇的内容啦- Python中的函 ...
- C语言winmain函数的参数,c++:谁调用了main/WinMain函数!
c++:谁调用了main/WinMain函数! (2010-09-28 15:29:54) 标签: it main和WinMain函数都被操作系统调用! WinMain函数的四个参数由操作系统传递过来 ...
- php函数默认参数不传值报错,php 关于函数参数的默认值
在写函数的时,有时我们会给参数设置默认值,如果参数默认值没有书写正确会引起警告,因此在这里整理一下正确使用方式 1.默认值必须是常量表达式,不能是诸如变量,类成员,或者函数调用等. 2.注意当使用默认 ...
- js中函数的参数为函数的情况即回调函数
js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数 function B() { console.log("函数B") setTimeou ...
- [c++][语言语法]函数模板和模板函数 及参数类型的运行时判断
参考:http://blog.csdn.net/beyondhaven/article/details/4204345 参考:http://blog.csdn.net/joeblackzqq/arti ...
- js函数中参数的传递
先看一道JS的笔试题: var setObj=function(o){o.name="xiaoming";o={};o.name="xiaohong"; } v ...
- 函数传参数_算法笔记(7)第二章C、C++快速入门函数,main函数,
#includevoid change(int x){ x=x+1;}int main(){ int x=10; change(x); prinf("%d\n",x); retur ...
- py6_Python 内置函数/普通自定义函数 及参数和返回值
################################################## 目录 活动简介 Python 函数参数 如何定义一个函数 示例定义一个无参函数 形参和实参的概念 ...
最新文章
- C++11中std::unique_lock的使用
- linux 查看域名解析,linux查询服务器域名解析记录
- openfire 打包发布
- STM32F1笔记(七)WWDG窗口看门狗
- 洛克王国进不去 不显示服务器,《洛克王国》FAQ:注册和登陆问题
- Google Shopping Feed 数据整理之XML格式实现方法
- [python教程入门学习]就业寒冬,从拉勾招聘看Python就业前景
- DateTimeFormatter,时间格式化与解析日期或时间
- TensorFlow中的设备管理——Device的创建与注册机制
- 一篇全面的 MySQL 高性能优化实战总结!
- 3809. 修改数组——AcWing题库
- Flex创建弹出菜单(PopUpButton/Menu/PopMenuButton)
- MyBatis学习——第五篇(手动分页和pagehelper分页实现)
- 华为P50Pro怎么解锁huawei P50屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤
- 测量耐力也有算法了!仅需锻炼20分钟,就能知晓自己能跑多久
- 使用Socks5代理加速爬虫访问的方法
- c语言赋值运算与除法运算顺序,C语言运算符的优先级和结合律
- Oracle数据库之同义词(SYNONYM)使用
- HTTPS详解及HTTPS实验
- Java面试题总结2020