Я знаю, что мой вопрос похож на этот или этот, но я считаю, что это на самом деле не то же самое, и, более того, у второго ответа нет ответа, я решил спросить, правильно ли добавлять директивы препроцессора при вызове функционально-подобного макроса?
В моем случае у меня есть макрос функции:
#define FUNC_MACRO(a, b) // do something with the variables
и где-то в коде я вызываю его с определенной разницей, если определен какой-то другой макрос:
// ...
FUNC_MACRO(aVal
#ifdef ANOTHER_MACRO
+ offset
#endif // ANOTHER_MACRO
, bVal);
// ...
Я тестировал на своей машине (linux, с gcc 4.8), и он работал нормально (с директивами препроцессора и без них и с и без ANOTHER_MACRO), но безопасно ли это сделать?
Я прочитал абзац 16.3/9 из ответа на первый подобный вопрос, но верно ли это и для моего случая?