Różnica między funkcją makro a funkcją inline

Spisu treści:

Różnica między funkcją makro a funkcją inline
Różnica między funkcją makro a funkcją inline

Wideo: Różnica między funkcją makro a funkcją inline

Wideo: Różnica między funkcją makro a funkcją inline
Wideo: Inline Vs Macros in C++| By Professor Pankaj Gupta | BIIT 2024, Lipiec
Anonim

Kluczowa różnica – funkcja makro a funkcja inline

Makro to fragment kodu, który jest dyrektywą preprocesora. Funkcja inline to funkcja rozszerzająca język C++, która minimalizuje czas wykonywania programu. Dlatego kluczowa różnica między makro i funkcją wbudowaną polega na tym, że makro jest sprawdzane przez preprocesor, podczas gdy funkcja wbudowana jest sprawdzana przez kompilator.

Makro jest umieszczane na początku programu poprzedzone znakiem hash. Gdy w programie występuje nazwa makra, jest ona zastępowana treścią makra.

Co to jest makro?

Preprocesor to program, który przetwarza kod źródłowy, zanim przejdzie przez kompilator. Działa za pomocą wiersza poleceń preprocesora lub dyrektyw. W programie dyrektywy preprocesora są umieszczane w programie źródłowym przed programem głównym. Zanim kod źródłowy przejdzie przez kompilator, jest sprawdzany przez preprocesor pod kątem dyrektyw preprocesora. Dyrektywy preprocesora mają symbol. W przeciwieństwie do innych stwierdzeń nie kończą się średnikiem. Jednym z typów dyrektyw dotyczących preprocesora jest makro. Ogólnie makra są pisane wielkimi literami.

Różnica między funkcją makro a funkcją inline
Różnica między funkcją makro a funkcją inline

Rysunek 01: Program C++ z makrami

Według powyższego programu, wiersz 3 i wiersz 4 oznaczają makra. Podczas obliczania powierzchni wartość PI jest zastępowana za pomocą zdefiniowanego makra. W wierszu 14. volume=CUBE(value) preprocesor rozwija instrukcję jako volume=(wartośćwartośćwartość). Znalezienie kostki można zapisać jako funkcję, ale tutaj jest napisane za pomocą makra. Jeśli istnieje wyrażenie objętości=CUBE(x+y), to rozszerzy się do objętości=(x+yx+yx+y).

Niektóre tokeny programowania mogą łatwo zostać błędnie wpisane. Można je zastąpić za pomocą makr. np. define AND &&, define LUB ||. Definicja makra może również zawierać wyrażenia takie jak define AREA 45.56.

Co to jest funkcja inline?

Kiedy wywoływana jest funkcja, kompilator potrzebuje trochę czasu na jej wykonanie. Jeśli funkcja nie jest bardzo złożona, programista może przekonwertować ją na funkcję wbudowaną. Zapoznaj się z poniższym programem.

Różnica między funkcją makro a funkcją inline_Rysunek 2
Różnica między funkcją makro a funkcją inline_Rysunek 2

Rysunek 02: Funkcja bez funkcji Inline

Print_hello to prosta funkcja. Wypisuje ciąg „Hello”, gdy funkcja jest wywoływana. Czas wykonania tej funkcji to 0,187s. W przypadku użycia słowa kluczowego inline w następujący sposób czas wykonania skraca się do 0,064s.

Kluczowa różnica między funkcją makro a funkcją inline
Kluczowa różnica między funkcją makro a funkcją inline

Rysunek 03: Funkcja wbudowana

Dlatego, używając słowa kluczowego inline, skraca się czas wykonania. Funkcje wbudowane mogą nie działać, jeśli istnieją pętle, instrukcje switch i jeśli funkcja zawiera zmienne statyczne lub funkcje rekurencyjne.

Jaka jest różnica między funkcją makro a funkcją inline?

Makro a funkcja inline

Makro to fragment kodu, który jest dyrektywą preprocesora, która jest zawarta na początku programu poprzedzona znakiem hash. Funkcja inline to funkcja rozszerzająca język C++, która minimalizuje czas wykonywania programu.
Czas oceny
W makrze argument jest oceniany za każdym razem, gdy jest używany w programie. Inline argument jest oceniany raz.
Sprawdzone przez
Makro jest sprawdzane przez preprocesor. Funkcja wbudowana jest sprawdzana przez kompilator.
Słowo kluczowe
Marco używa define. Funkcja inline używa słowa kluczowego „inline”.
Zastosowanie
Makro może służyć do definiowania stałych, wyrażeń, dosłownego zastępowania tekstu oraz definiowania funkcji itp. Funkcja inline może być użyta do zminimalizowania czasu wykonania programu.
Rozwiązanie
Makro kończy się nową linią. Funkcja inline kończy się nawiasem klamrowym na końcu funkcji inline.
Definiowanie punktu
Na początku programu jest zdefiniowane Marco. Funkcja wbudowana może znajdować się w klasie lub poza nią.

Podsumowanie - funkcja makro a funkcja inline

W tym artykule omówiono różnicę między funkcją makro a funkcją w wierszu. Te pojęcia są używane w programowaniu w C++. Różnica między makro a funkcją wbudowaną polega na tym, że makro jest sprawdzane przez preprocesor, podczas gdy funkcja wbudowana jest sprawdzana przez kompilator.

Zalecana: