vTaskSetApplicationTaskTag()

I was looking at the example on vTaskSetApplicationTaskTag() in the FreeRTOS reference manual and I have a question about the last line in that example (Listing 42): #define traceTASK_SWITCHED_OUT() xTaskCAllApplicationTaskHook( pxCurrentTCB, 0) This #define, as I understand it, globally enables all tasks to run their defined registered callbacks.  Am I correct?  If so, what about tasks that do not define a callback?  Does the kernel ‘ignore’ calling the task-hooks of those asks that do not define the hook callbacks  or does it force all tasks to define the hook-callbacks?

vTaskSetApplicationTaskTag()

If pxCurrentTCB does not have a tag defined then xTaskCallApplicationTaskHook() will return pdFAIL. It is safe.