Je sais que ma question est similaire à celui-ci ou celui-ci J'ai donc décidé de demander s'il est correct d'ajouter des directives de préprocesseur lorsqu'une macro de type fonction est appelée.
Dans mon cas, j'ai une macro de type fonction :
#define FUNC_MACRO(a, b) // do something with the variables
et quelque part dans le code, je l'appelle avec une différence spécifique si une autre macro est définie :
// ...
FUNC_MACRO(aVal
#ifdef ANOTHER_MACRO
+ offset
#endif // ANOTHER_MACRO
, bVal);
// ...
J'ai testé sur ma machine (linux, avec gcc 4.8) et cela a fonctionné correctement (avec et sans les directives du préprocesseur, et avec et sans ANOTHER_MACRO défini), mais est-ce sûr de le faire ?
J'ai lu le paragraphe 16.3/9 dans la réponse à la première question similaire, mais cela vaut-il aussi pour mon cas ?