Допустим, в макрофункции производятся некие вычисления - умножение, деление. И ее результат должен быть больше нуля и меньше или равным 2 ^32. Как задать параметры макрофункции, чтобы гарантировать, что компилятор при расчетах не вышел за пределы unsigned long long? Если их несколько. Задачу для ограничений результатов могу так сделать: (FUN > UINT_MAX) ? UINT_MAX : (FUN > 0 ? FUN : 1) А проверку внутри макрофункции? Наверное, никак?
|