Believe it or not but every static variable in C is initialized whether you explicitly set a value or not. If you don’t set a variable then the variable will be initialized to 0. Almost all of the time that behaviour is exactly what you need.
I was working on a watchdog timer module this week and I ran into a problem. When I design a watchdog module, I make sure that every major task and/or function is working properly before resetting the watchdog timer. If the module detects an error then I like to save the error into RAM so that it is available for debugging later after the CPU resets. This has saved a ton of time over the years.