我在 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/