У меня есть исходный код библиотеки, в которой есть много странных макросов IF, ELSE, FOR и т. Д. Для всех распространенных ключевых слов C вместо использования обычных слов if, else, for, while. Эти макросы определены так:
#define IF( a) if( increment_if(), a)
где функция increment_if () определена так:
static __inline void increment_if( void) {
// If the "IF" operator comes just after an "ELSE", its counter
// must not be incremented.
... //implementation
}
Я не очень понимаю, какова цель таких макросов? Эта библиотека предназначена для приложений реального времени, и я предполагаю, что использование таких макросов должно замедлять работу приложения.