flying dust
Results
2
comments of
flying dust
> 目前我的解决办法是定义全局变量标志位,然后定时器做置位操作;然后在while循环里轮询标志位,通过标志位判断来定时调用带参函数。 可以将回调函数形参修改为(void *arg),在初始化timer是将所需传递数据放入,回调触发时进行数据转换,以此实现参数传递。这个实现参考自线程pthread_create函数中对于不定类型参数的传递处理。
推荐另外一种的解决方法: 不用设置标志,不用去考虑有符号无符号中间的转换。 定义一个获取时间长度的宏 **TIME_PASSED** ` #define TIME_MAX 0xFFFFFFFFu /* 最大时间长度取决于使用的timer计时器长度,这里以32bit为例 */ ` ` #define TIME_PASSED(now, since) ((now) >= (since)) ? ((now) -(since)) : ((now) + (1 + TIME_MAX - (since)))...