C 将参数作为空指针传递给OS iii中的新线程

C 将参数作为空指针传递给OS iii中的新线程,c,multithreading,embedded,C,Multithreading,Embedded,一些背景:我正在阅读Micrium的uC/OS-III用户手册,并遵循该指南,使用IAR Embedded Workbench IDE用C编程 代码来自为uC-Eval-STM32F107开发板编写的书中提供的一些示例。它正在创建一个新线程,并通过一个空指针传递参数。我熟悉void指针和向线程传递参数 调用内核函数以创建新线程: OSTaskCreate( ... ); 然后在函数定义中,它们做了一些我不知道如何描述的事情: static void AppTaskStart (void *

一些背景:我正在阅读Micrium的uC/OS-III用户手册,并遵循该指南,使用IAR Embedded Workbench IDE用C编程

代码来自为uC-Eval-STM32F107开发板编写的书中提供的一些示例。它正在创建一个新线程,并通过一个空指针传递参数。我熟悉void指针和向线程传递参数

调用内核函数以创建新线程:

OSTaskCreate( ... );
然后在函数定义中,它们做了一些我不知道如何描述的事情:

static  void  AppTaskStart (void *p_arg)
{
    CPU_INT32U  cpu_clk_freq;
    CPU_INT32U  cnts;
    OS_ERR      err;
    CPU_TS  ts;


   p_arg = p_arg;

    ...
}
或者我在其他示例中也看到了代码如下所示:

(void *)p_arg;
他们在做什么?为什么

 p_arg = p_arg;

放在那里是为了抑制关于未使用变量
p_arg
的警告

(void *)p_arg;