freeRTOS (void)pvParameters 源代码中函数的上下文 portTASK_FUNCTION

context of function portTASK_FUNCTION in sourecode of freeRTOS (void)pvParameters

在跟踪 freeRTOS task.c 的源代码时,我看到一个名为 portTASK_FUNCTION 的函数。它的代码如下

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

    for( ;; )
    {
        do something
    }
}

我不明白( void ) pvParameters 是什么意思,希望有人能帮助我,thx

顺便说一句,这个函数的参数类型没有声明,为什么它可以运行?

此代码包含注释:

/* Stop warnings. */

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

portTASK_FUNCTION 是 NOT 一个函数,它是一个宏。如果我 google 它得到的第一个 link 在这里:http://www.freertos.org/implementing-a-FreeRTOS-task.html - 在这种情况下 prvIdleTask 是函数。在 link 中提到的一个模糊案例中,portTASK_FUNCTION 宏已过时(不需要)但在主要内核代码中用于可移植性。