С++ inline встраиваемая функция
Встраиваемая (вложенная) функция - это небольшая (по объему кода) функция, код которой подставляется вместо ее вызова.
Это полезно для разгрузки процессора, тем самым возрастает скорость программы.
Например код:
#include <iostream>
using namespace std;
class test {
int i;
public:
void put (int j);
int get();
};
void test::put (int j){ // функция присваивания
i = j;
}
int test::get (){ // функция вывода
return i;
}
int main ()
{
test Obj1; // создаем объект Obj1
Obj1.put(14); // заносим 14 в закрытую переменную i
cout << Obj1.get(); // показываем переменную i
return 0;
}
Мы можем освободить процессор на несколько тактов, заменив функции на встраиваемые (inline):
inline void test::put (int j){
i = j;
}
inline int test::get (){
return i;
}
Мы просто добавили слово inline перед функциями.
В этом случае, строка Obj1.put(14); будет обработана как: Obj1.i=14;
То есть функция не будет вызываться, а будет подставляться, тем самым экономя работу процессора.
Можно еще сократить код, переписав объявление класса так:
class test {
int i;
public:
void put (int j){ i = j; };
int get() { return i; };
};
Inline-функции не будут обработаны компилятором:
- если внутри есть цикл, switch, goto
- рекурсивные функции
- содержит статические static переменные
Оставить свой ответ: