The #ifdef also lets you add functionality only when something else is defined like say the blocking define for a module i.e. modname_h. I use this it my latest contribution to handle if the loading bar manager is in the program. It first off controls whether I need to include the semaphore manager and then adds support for calling the loading bar manager... If I don't need the loading bar it configures for running without it.