Цитата(Xenia @ Dec 21 2010, 14:33)

А если вам нужно, чтобы тело функции вычислялось в момент компиляции, тогда используйте не функцию, а дефайн. Например так:
#define func(x) 2*(x)*(x)+4*(x)-6
тогда это действительно будет всегда прямая подстановка, и если x окажется константой, то компилятор вычислит всё выражение func во время компиляции.
Нет, дефайн даст тот-же результат, что и функция + #pragma inline=forced. Только функция в данном случае всё равно лучше.
Цитата(Xenia @ Dec 21 2010, 14:57)

А не факт, что IAR того же не умеет. Многое зависит от установок оптимизации, тогда как топикстартер молчит об этих установках, как рыб

.
Различные установки оптимизации не дают желаемого результата - функция либо всегда встраивается, либо всегда нет, не зависимо от контекста её вызова.