Makro to fragment kodu, który jest dyrektywą preprocesora. Funkcja wbudowana to funkcja rozszerzająca C ++, która minimalizuje czas wykonywania programu. Dlatego też kluczowa różnica między Makrem a funkcją Inline jest to makro jest sprawdzane przez preprocesor, podczas gdy funkcja wbudowana jest sprawdzana przez kompilator.
Makro znajduje się na początku programu poprzedzone znakiem skrótu. Gdy w programie znajduje się nazwa makra, jest ona zastępowana treścią makra.
1. Przegląd i kluczowa różnica
2. Co to jest makro
3. Co to jest funkcja wbudowana
4. Porównanie obok siebie - Makro vs funkcja wbudowana w formie tabelarycznej
5. Podsumowanie
Preprocesor to program, który przetwarza kod źródłowy, zanim przejdzie on przez kompilator. Działa przy użyciu wiersza polecenia 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 preprocesora pod kątem dyrektyw preprocesora. Dyrektywy preprocesora mają symbol #. W przeciwieństwie do innych instrukcji, nie kończą się one średnikiem. Jednym typem dyrektywy preprocesora jest makro. Zasadniczo makra są pisane dużymi literami.
Rysunek 01: Program C ++ z makrami
Zgodnie z powyższym programem, linia 3 i linia 4 oznaczają makra. Przy obliczaniu obszaru wartość PI jest zastępowana przy użyciu zdefiniowanego makra. W wierszu 14 wolumin = CUBE (wartość), preprocesor rozwija instrukcję jako wolumin = (wartość * wartość * wartość). Znalezienie kostki można zapisać jako funkcję, ale tutaj jest napisane za pomocą makra. Jeśli istnieje instrukcja jako wolumin = CUBE (x + y), to zostanie rozwinięta do objętości = (x + y * x + y * x + y).
Niektóre tokeny programowania można łatwo pomylić. Można je zastąpić za pomocą makr. na przykład # zdefiniować AND &&, # zdefiniować OR ||. Definicja makra może również zawierać wyrażenia takie jak #define AREA 4 * 5.56.
Po wywołaniu funkcji kompilator potrzebuje czasu na jej wykonanie. Jeśli funkcja nie jest bardzo złożona, programista może przekonwertować funkcję na funkcję wbudowaną. Zobacz poniższy program.
Rysunek 02: Funkcja bez wbudowanej
Print_hello to prosta funkcja. Wyświetla ciąg „Hello” po wywołaniu funkcji. Czas wykonania tej funkcji wynosi 0,187 s. W przypadku użycia słowa kluczowego wbudowanego w następujący sposób czas wykonania zmniejsza się do 0,064 s.
Rysunek 03: Funkcja wbudowana
Dlatego 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.
Makro a funkcja wbudowana | |
Makro jest fragmentem kodu, który jest dyrektywą preprocesora, która jest zawarta na początku programu poprzedzona znakiem skrótu. | Funkcja wbudowana to funkcja rozszerzająca 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. |
Sprawdzony 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”. |
Stosowanie | |
Makra można używać do definiowania stałych, wyrażeń, do dosłownego zastępowania tekstu oraz do definiowania funkcji itp. | Aby zminimalizować czas wykonywania programu, można użyć funkcji wbudowanej. |
Zakończenie | |
Makro kończy się wraz z nową linią. | Funkcja Inline kończy się nawiasami klamrowymi na końcu funkcji Inline. |
Definiowanie punktu | |
Marco jest zdefiniowany na początku programu. | Funkcja wbudowana może znajdować się w klasie lub poza nią. |
W tym artykule omówiono różnicę między makrem a funkcją wbudowaną. Te pojęcia są używane w programowaniu w 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.
1. „Dyrektywy preprocesora”. Cplusplus.com. Dostępny tutaj
2. „C Funkcje wbudowane”. Www.tutorialspoint.com, Tutorials Point, 19 marca 2018 r. Dostępne tutaj