c++ - 在其他函数体内声明函数方法的用例是什么?

标签 c++ c

我在 FreeRTOS 源代码中看到了这篇文章:

void vApplicationIdleHook( void )
{

    /* The simple blinky demo does not use the idle hook - the full demo does. */
    #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0 )
    {
        extern void vFullDemoIdleHook( void );

        //* Implemented in main_full.c. */
        vFullDemoIdleHook();
    }
    #endif

}

为什么要这样声明函数/方法?有什么好处?我在 Java 中也看到过类似的代码。

最佳答案

我假设这是项目中唯一使用 vFullDemoIdleHook 的地方,因此将声明和函数调用全部保留在这几行代码中是清晰简洁的。

将声明放在别处有什么好处?考虑替代方案……这可能是您更习惯看到的:

/* The simple blinky demo does not use the idle hook - the full demo does. */
#if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0 )
extern void vFullDemoIdleHook( void );
#endif


void vApplicationIdleHook( void )
{

  /* The simple blinky demo does not use the idle hook - the full demo does. */
  #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0 )
  {
    //* Implemented in main_full.c. */
    vFullDemoIdleHook();
  }
  #endif

}

我看不出这样做有什么好处

关于c++ - 在其他函数体内声明函数方法的用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26733447/

相关文章:

c++ - 具有多个客户端的服务器 - 使用 select() 编写

c - mmap 可执行文件可以多次使用吗?

按升序组合两个整数文件,比较它们,然后将它们排序到第三个文件中,而不使用c中的数组

c++ - 如何使用 bind1st 和 bind2nd?

c++ - 无节点指针作为参数的二叉查找树的顺序遍历

c++ - 在多线程应用程序中使用 vector

c - 一旦某个字符串出现在c中,如何停止读取文件

c - 动态规划的最短路径

c - C中密码中的字符数

c++ - 如何检测用户何时按下电源关闭按钮?