freeRTOS(void)pvParameters的sourecode中函数portTASK_函数的上下文

freeRTOS(void)pvParameters的sourecode中函数portTASK_函数的上下文,task,freertos,Task,Freertos,在为freeRTOS跟踪task.c的源代码时,我看到一个名为portTASK\u function的函数。其代码如下所示 static portTASK_FUNCTION( prvIdleTask, pvParameters ) { /* Stop warnings. */ ( void ) pvParameters; //<--what for?? for( ;; ) { do something } } static po

在为freeRTOS跟踪task.c的源代码时,我看到一个名为portTASK\u function的函数。其代码如下所示

static portTASK_FUNCTION( prvIdleTask, pvParameters )
{
    /* Stop warnings. */
    ( void ) pvParameters;  //<--what for??

    for( ;; )
    {
        do something
    }
}
static portTASK_函数(prvIdleTask、pvParameters)
{
/*停止警告*/

(void)pvParameters;//此代码由注释组成:

/* Stop warnings. */

优化器将删除您提到的代码。但是函数-
pvParameters
中有未使用的参数。此代码是为关闭编译器而编写的。它什么也不做。

portTASK\u函数不是函数,它是宏。如果我用谷歌搜索它,我得到的第一个链接是这里:-在这种情况下,prvIdleTask是函数n、 除了链接中提到的一个模糊的例子外,portTASK_函数宏已经过时(不是必需的),但为了可移植性,在主内核代码中使用了它。

为什么将未使用的参数放在这个宏中?为什么?thx,我知道了。它只是一个宏,我在其他地方找到了定义