Цитата(demiurg_spb @ Apr 29 2011, 14:39)

constant propagation - уже сто лет в обед.
Обычно constant propagation ничего не знает про функции. А gcc постарался - молодцы.
Цитата(demiurg_spb @ Apr 29 2011, 14:39)

Так и сделано сейчас, но это не удобно, т.к. это число должно зависеть от задефайненого значения. Некрасиво....
(грубо это коэффициент фильтра, зависящий от ADC_SMP_RATE, который должен пересчитываться на этапе компиляции.
а ADC_SMP_RATE - любое целое положительное число>0)
Ну, можно прикрутить костыль: assert(проверить, что значения двух констант согласованы). Тогда если изменили одну константу, но забыли подправить другую, это вылезет на этапе отладки. Другие варианты тоже так себе: внешний скрипт для генерации констант, инициализация константы в ОЗУ при старте программы.