Mamy funkcję która liczy nam wartość minimalną dwóch zmiennych int.
int min(int a,int b) { return a <= b ? a : b; }
Składnia jest bardzo prosta ale wywołanie funkcji jest bardziej czasochłonne niż napisanie ciała funkcji kilkanaście razy w programie. Funkcję inline kompilator uznaje jako fragment kodu. Weźmy pod uwagę powyższą funkcję i do definicji dodajmy słowo kluczowe inline:
inline int min(int a,int b) { return a <= b ? a : b; }
Teraz gdy wywołamy funkcję w kodzie:
int minimum=min(5,3);
to kompilator w tym miejscu przerobi sobie kod następująco:
int minimum=5 <= 3 ? 5 : 3;
Nie zmieni on tego w kodzie źródłowym, więc nie ma obawy że nam kompilator coś pozmienia. Użyteczne jest to gdy mamy małe funkcje, gdyż bardzo częste ich wywołanie, znacznie spowalnia program. Ułatwia to jednak poprawę kodu bo poprawiamy w jednym miejscu a nie na przykład w 30. Jeszcze jedna istotna sprawa. W funkcjach typu inline nie może być pętli, ani wstawek assemblerowych. Kompilator nie skompiluje nam takiego kodu. Często jest to wynikiem błędów. Przynajmniej u mnie. :) inline.cpp