Różnica Między Funkcją Makro I Wbudowaną

Spisu treści:

Różnica Między Funkcją Makro I Wbudowaną
Różnica Między Funkcją Makro I Wbudowaną

Wideo: Różnica Między Funkcją Makro I Wbudowaną

Wideo: Różnica Między Funkcją Makro I Wbudowaną
Wideo: Co mówią: PSY PODCZAS KĄPIELI 2024, Listopad
Anonim

Kluczowa różnica - funkcja makro a funkcja wbudowana

Makro to fragment kodu, który jest dyrektywą preprocesora. Funkcja inline to udoskonalenie języka C ++ w celu zminimalizowania czasu wykonywania programu. Dlatego kluczową różnicą między makrem a funkcją wbudowaną jest to, że makro jest sprawdzane przez preprocesor, podczas gdy funkcja wbudowana jest sprawdzana przez kompilator.

Na początku programu znajduje się makro poprzedzone znakiem krzyżyka. Gdy w programie znajduje się nazwa makra, jest ona zastępowana treścią makra.

ZAWARTOŚĆ

1. Przegląd i kluczowe różnice

2. Co to jest makro

3. Co to jest funkcja wbudowana

4. Porównanie obok siebie - funkcja makro i funkcja wbudowana w formie tabelarycznej

5. Podsumowanie

Co to jest makro?

Preprocesor to program, który przetwarza kod źródłowy, zanim przejdzie on przez kompilator. Działa przy użyciu 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 instrukcji nie kończą się średnikiem. Jednym z typów dyrektyw preprocesora jest makro. Ogólnie makra są pisane dużymi literami.

Różnica między funkcją makro i wbudowaną
Różnica między funkcją makro i wbudowaną

Rysunek 01: Program w C ++ z makrami

Zgodnie z powyższym programem linia 3 i linia 4 wskazują makra. Podczas obliczania powierzchni wartość PI jest zastępowana za pomocą zdefiniowanego makra. W linii 14, objętość = CUBE (wartość), preprocesor rozwija instrukcję jako objętość = (wartość * wartość * wartość). Znalezienie sześcianu można zapisać jako funkcję, ale tutaj jest to zapisane za pomocą makra. Jeśli istnieje instrukcja, jak volume = CUBE (x + y), to rozszerzy się do volume = (x + y * x + y * x + y).

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

Co to jest funkcja Inline?

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

Różnica między makrem a funkcją wbudowaną Rysunek 2
Różnica między makrem a funkcją wbudowaną Rysunek 2

Rysunek 02: Funkcja bez Inline

Print_hello to prosta funkcja. Gdy funkcja jest wywoływana, wypisuje ciąg „Hello”. Czas wykonania tej funkcji wynosi 0,187 s. W przypadku użycia poniższego słowa kluczowego czas wykonywania skraca się do 0,064 s.

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

Rysunek 03: Funkcja Inline

W związku z tym użycie słowa kluczowego inline skraca czas wykonywania. Funkcje wbudowane mogą nie działać, jeśli istnieją pętle, instrukcje przełączania i jeśli funkcja zawiera zmienne statyczne lub funkcje rekurencyjne.

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

Porównaj środek artykułu przed tabelą

Makro a funkcja wbudowana

Makro to fragment kodu będący dyrektywą preprocesora, która znajduje się na początku programu poprzedzona znakiem hash. Funkcja inline to udoskonalenie języka C ++ w celu zminimalizowania czasu wykonywania programu.
Czas oceny
W makrze argument jest oceniany za każdym razem, gdy jest używany w programie. W inline argument jest oceniany raz.
Sprawdzony przez
Makro jest sprawdzane przez preprocesor. Kompilator sprawdza wbudowaną funkcję.
Słowo kluczowe
Marco używa #define. Funkcja inline używa słowa kluczowego „inline”.
Stosowanie
Makra można używać do definiowania stałych, wyrażeń, podstawiania tekstu dosłownego, definiowania funkcji itp. Aby zminimalizować czas wykonywania programu, można użyć funkcji inline.
Zakończenie
Makro kończy się nową linią. Funkcja inline kończy się nawiasem klamrowym na końcu funkcji inline.
Punkt definiujący
Marco jest definiowany na początku programu. Funkcja wbudowana może znajdować się wewnątrz lub na zewnątrz klasy.

Podsumowanie - funkcja makro kontra funkcja wbudowana

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

Zalecane: