在 FreeRTOS Tasks 中实现函数是个好习惯吗?

Is it a good habit to implement functions inside FreeRTOS Tasks?

我是 FreeRTOS 和实时操作系统的新手。我想知道在 FreeRTOS Tasks 中实现功能是否是一种好的编程风格。例如

void displayTask(void* param) {

    static void Factorial (params) {
        // doSth
   }

   for(;;) {

       //call it here
       Factorial(params);
   }

}

还是在 Task 之外实现它更好?因为如果我有很多函数,我想我会很难阅读代码。

嵌套函数不是有效的 C。您的编译器可能支持它,但在大多数情况下不建议编写只能由特定编译器编译的代码。在嵌入式系统中尤其如此,在这些系统中,许多您可能希望使用的目标不支持 GCC。

以这种方式嵌套函数的唯一好处是限制其范围,使其只能在封闭函数内调用。

在任务中具体使用该功能在很大程度上是无关紧要的,嵌套函数没有 运行 时间影响,它像常规函数一样被编译、调用和 运行s,唯一不同之处在于,在编译时,函数在其他代码中的可见性。

所以这只是任何功能中的“不良做法”,而不是具体的任务。