论坛元老
 
- 积分
- 3725
- 金钱
- 3725
- 注册时间
- 2011-5-23
- 在线时间
- 2013 小时
|
发表于 2016-11-14 10:31:02
|
显示全部楼层
本帖最后由 aozima 于 2016-11-14 10:35 编辑
上面这写法要使用typedef 的话就是
idle.c[mw_shl_code=c,true]
typedef void(hook_fun)();
#ifdef RT_USING_HOOK
static hook_fun rt_thread_idle_hook;
void rt_thread_idle_sethook(hook_fun hook)
{
rt_thread_idle_hook = hook;
}
static void rt_thread_idle_entry(void *parameter)
{
while (1)
{
#ifdef RT_USING_HOOK
if (rt_thread_idle_hook != RT_NULL)
rt_thread_idle_hook();
#endif
}
}
#endif /* RT_USING_HOOK */
[/mw_shl_code]
这么写的好处就是
[mw_shl_code=c,true]typedef rt_err_t( ind)(rt_device_t,rt_size_t);[/mw_shl_code]
这样写之后,以后定义函数指针直接使用
[mw_shl_code=c,true]ind ind_fun1;[/mw_shl_code]
而可以不像下面这样写
[mw_shl_code=c,true]rt_err_t (*ind_fun1)(rt_device_t,rt_size_t)[/mw_shl_code]
|
|