С++ 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 переменные



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы