void *p_arg和(void)p_arg是一个什么东西,看不明白

2019-07-14 21:11发布

想问一下,下面程序中void *p_arg和(void)p_arg是一个什么样的东西
* 函数名:Task_LED
* 描述  : LED流水灯        
* 输入  :无
* 输出  : 无
*/
void Task_LED(void *p_arg)
{
        OS_ERR err;
    (void)p_arg;                                // 'p_arg' 并没有用到,防止编译器提示警告
        
    while (1)
    {
        LED1( ON );
        OStimeDlyHMSM(0, 0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);
        LED1( OFF);

        LED2( ON );
        OSTimeDlyHMSM(0, 0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);
        LED2( OFF);

        LED3( ON );
        OSTimeDlyHMSM(0, 0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);
        LED3( OFF);
    }
}

void *p_arg是无类型指针?也就是任意类型指针吗?
那(void)p_arg;   又是什么意思?
在很多程序中看到这句p_arg=p_arg;
这句对自己赋值有什么意义?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
friend0720
2019-07-15 05:44
void *p_arg是无类型指针?也就是任意类型指针吗?

无类型指针可以被强制转换成任何类型的指针。任何类型的指针也可以强制转换成无类型指针。至于这个指针到底指向什么,可以由你自己决定。

在很多程序中看到这句p_arg=p_arg;

这句只是为了避免在某些编译器中出现不必要的警告。 uC/OS-II 操作系统中经常出现这种情况。

一周热门 更多>