Единственный способ ускорить вызовы функций - это если компилятор знает, какую функцию он будет вызывать.
То есть что-то вроде:
void foo(void)
{
/* do some stuff */
}
int main(void)
{
foo();
}
Может быть встроено в:
int main(void)
{
/* do some stuff */
}
Но если компилятор не знает, какой из них вызвать:
void foo(void)
{
/* do some stuff */
}
void bar(void)
{
/* do some other stuff */
}
typedef void(*Function)(void);
int main(void)
{
Function func = /* choose a function at runtime */
func();
}
Компилятор не может предсказать, какая функция будет вызвана, и, следовательно, не может встроить ее.
Если ваш компилятор поддерживает это, вы можете попробовать использовать __fastcall
, но вам нужно профилировать свой код и посмотреть, если он имеет положительное значение.
Этот уровень косвенности не будет иметь большого значения. Профилируйте свой код и найдите реальное замедление.