I would say that there is no reason to declare a function inside a function, since it gives the false impression that it is somehow limited only to this function, while it is not. Functions have an external connection (except that your code specifically has extern for the vFullDemoIdleHook() function) by default, and declaring internal functions should be considered as bad practice (but really valid).
Prototypes should be in the header file (or at the top of the source file if there is no header). I would move the declaration to main_full.h :
extern void vFullDemoIdleHook( void );
main_full.c:
void vApplicationIdleHook( void ) { #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0 ) {
If you are not going to use the same function name vFullDemoIdleHook for another purpose (which would be horrible), you do not need to conditionally ( #if ) declare function prototypes.
source share