pas envie de discuter des heures de ça, mais utiliser des pratiques de l'embarqué dans le non-embarqué c'est bien, sauf quand c'est inutile.
Ton truc à base de paramètres conditionnels n'est pas un style mais une connerie. En particulier ça empêche d'utiliser une version précompilée de ton bordel. Surtout qu'à bien faire, les #ifdef, tu les as mis au milieu. tout ça pour éviter quoi? 4 octets de pile? mets ton ifdef dans ton implémentation, mais pitié, pas dans l'interface
c'est le genre de truc qui mérite sincèrement des coups de trifouet.