Цитата(GYUR22 @ Feb 12 2011, 12:40)

размер кода пока не пугает ...
оперативки уже мало 95% занято (структурой данных и 2мя буферами uart) ... тока на стэк как я понимаю осталось
с ассемблером я практически не знаком - но каждый вызов функции это прыжок по коду - занимающий циклы процессора если я не ошибаюсь
но если написать что она- inline без static то она интегрируется в то место где вызывается?
Не всегда, а по усмотрению компилятора.
Для всех функций не представленных в интерфейсе модуля (использующихся внутри одного модуля, иначе говоря файла) считается правилом хорошего тона присваивать квалификатор static. Это сообщает компилятору о возможности встраивания кода функции при оптимальных на его взгляд условиях. А компиляторы нынче весьма и весьма умные.
Использовать квалификатор inline имеет смысл лишь для замены макросов функциями по большей части в заголовочных файлах.
Придерживаясь этих нехитрых правил можно получить не только оптимальный но и самодокументированный код.
Для гарантированного встраивания функции при любых условиях можно использовать особенности различных компиляторов.
В gcc например есть механизм атрибутов:
Код
#define INLINE __inline__ __attribute__((always_inline))
INLINE void vsegda_inline_func1(void);
INLINE void vsegda_inline_func2(void);
В других компиляторах используют механизм #pragma ...
Альтернатива - вечно зелёные и неувядающие макросы на все времена года:-)