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 宏已过时(不需要)但在主要内核代码中用于可移植性。
在跟踪 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 宏已过时(不需要)但在主要内核代码中用于可移植性。