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.
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.
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.
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.