J'ai un code source d'une bibliothèque qui a beaucoup de macros IF, ELSE, FOR, etc. étranges pour tous les C-keywords communs au lieu d'utiliser juste habituel si, sinon, pour, tandis que les mots-clés. Ces macros sont définies comme suit:Objectif des macros IF, ELSE, FOR?
#define IF(a) if(increment_if(), a)
où la fonction increment_if() est définie de façon:
static __inline void increment_if(void) {
// If the "IF" operator comes just after an "ELSE", its counter
// must not be incremented.
... //implementation
}
Je ne comprends pas vraiment, quel est le but de ces macros? Cette bibliothèque est pour une application en temps réel et je suppose que l'utilisation de telles macros doit ralentir une application.