Inline (w programowaniu) – słowo identyfikujące deklarację tak zwanej funkcji otwartej, podprogramu wewnętrznego lub podprogramu. Autorzy języków programowania stosują tę konstrukcję w dwojakim znaczeniu: modyfikatora w deklaracji funkcji lub metody (np. w C++, Object Pascal), dyrektywy języka (np. Turbo Pascal).

Modyfikator deklaracji Określa, iż właśnie definiowana funkcja jest funkcją otwartą (tzw. funkcją inline); zostanie ona skompilowana tak jak każda inna funkcja i będzie przechowywana w pamięci (można do niej odwoływać się za pomocą wskaźników), ale jeżeli nastąpi jej wywołanie, to kompilator, zamiast wygenerować w tym miejscu przeniesienie sterowania (skok) do tej funkcji, bezpośrednio wstawi wygenerowany kod tej funkcji, np. C99, C++, Object Pascal, makroasemblery.

Przykład w języku C++: inline long isqr(int a, int b) { return a * b; }

inline double Maxd(double a, b) { return a > b ? a : b; }

Przykład w języku Object Pascal: procedure MyProc(X: Integer); inline; begin // … end;

function MyFunc(Y: Char): String; inline; begin // … end;

Dyrektywa języka Umożliwia programowanie hybrydowe – język programowania wysokiego poziomu z osadzonym językiem maszynowym. W dyrektywie takiej umieszcza się kod maszynowy, sama może występować jako instrukcja w ciągu innych instrukcji (instrukcja kodu maszynowego) bądź jako ciało podprogramu (tzw. podprogram wewnętrzny) w jego definicji, jeżeli cały podprogram definiowany jest w kodzie źródłowym wyłącznie za pomocą języka maszynowego. Ma to miejsce np. w starszych kompilatorach z serii Turbo firmy Borland, w tym między innymi Turbo/Borland Pascal.

Przykład w Turbo Pascalu: function size_m: integer; inline($CD/$12/$89/$46/$04);

procedure idf(parametry); begin ... inline(kod_maszynowy); ... end;

Przypisy

Kategoria:Konstrukcje programistyczne