Inline vs Macro
C ++ poszedł dziś za daleko w dziedzinie programowania komputerowego. Będąc silnym językiem, czasami staje się nieco mylący dla programistów z powodu ogromnej biblioteki funkcji. Funkcja Inline jest jedną z nich, którą można łatwo pomylić z makrami w języku.
Nie jest tak, że istnieje niewielka różnica między nimi, ale mogą być nieco mylące ze względu na właściwości, które posiadają. W tym artykule omówimy więcej na temat różnic między funkcją wstawianą a makrami w języku C++.
Inline
Funkcja wbudowana jest jak każda inna funkcja w C ++ i jest również wywoływana w zwykły sposób. Funkcja, którą wykonuje, polega na tym, że tworzy kopię definicji skompilowanej funkcji. Oznacza to, że tworzy kopię zdefiniowanych elementów do skompilowania. Przykład można wziąć, jeśli dodamy dowolne dwie liczby całkowite i nazwiemy je funkcją inline, kompilator utworzy kopię liczb całkowitych do skompilowania.
Przykład:
Inline int sum (int x, int y)
Zwrot (x + y);
Makro
Makra w C ++ implementują zamianę tekstu w wierszu programu. Oznacza to, że zastępują tekst zgodnie ze zmianą zdefiniowaną w funkcji. W przeciwieństwie do funkcji inline, makro manipuluje kodem przy użyciu funkcji. Na przykład:
# zdefiniować DOUBLE (X) X * X
int y = 5;
int j = DOUBLE (++ y);
Tutaj otrzymamy wartość 30! Ponieważ wywołanie zostało wykonane za pomocą makra, „X” zostało zastąpione przez ++ y, co powoduje, że ++ y należy pomnożyć przez kolejne ++ y. To daje w sumie 5 * 6, czyli 30, a nie 6. Sześć byłoby podstawową, ale złą odpowiedzią.
Teraz makra mogą powodować błąd. Tak więc funkcja inline przychodzi na ratunek, kopiując wartości do pamięci kompilatorów, a następnie kompilując je.
Streszczenie:
1. Funkcja wbudowana tworzy kopię definicji funkcji.
2. Makro zastępuje tekst zidentyfikowany i zdefiniowany w funkcji.
3. Funkcja inline jest również stosowana, gdy makro ma powodować błąd w programie.