Inline (programowanie)
Inline (w programowaniu) – słowo identyfikujące deklarację tak zwanej funkcji otwartej[1], podprogramu wewnętrznego[2] lub podprogramu[3][4]. 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
edytujOkreśla, iż właśnie definiowana funkcja jest funkcją otwartą[1] (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++[1], Object Pascal[3][4], makroasemblery.
Przykład w języku C++[1]:
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[3][4]:
procedure MyProc(X: Integer); inline;
begin
// …
end;
function MyFunc(Y: Char): String; inline;
begin
// …
end;
Dyrektywa języka
edytujUmoż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[2]) 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[2].
Przykład w Turbo Pascalu[2]:
function size_m: integer;
inline($CD/$12/$89/$46/$04);
procedure idf(parametry);
begin
...
inline(kod_maszynowy);
...
end;
Przypisy
edytuj- ↑ a b c d Jan Bielecki: Od C do C++, programowanie obiektowe w języku C. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1332-X. (pol.).
- ↑ a b c d Andrzej Marciniak: Borland Pascal 7.0. Poznań: Nakom, 1994, seria: Biblioteka Użytkownika Mikrokomputerów. ISBN 83-85060-53-7. ISSN 0867-6011. (pol.).
- ↑ a b c Calling Procedures and Functions (Delphi) | Embarcadero Docwiki. docwiki.embarcadero.com/RADStudio/Sydney/en/Main_Page. [dostęp 2021-04-23]. (ang.).
- ↑ a b c Inline | Free Pascal and Lazarus Wiki. wiki.freepascal.org/. [dostęp 2021-04-23]. (ang.).