Inline i Macro

Anonim

Inline vs Macro

C ++ poszło zbyt daleko w dziedzinie programowania komputerowego w tych dniach. Jako potężny język, czasami staje się nieco mylący dla programistów ze względu na ogromną bibliotekę funkcji. Funkcja Inline jest jedną z nich, którą łatwo można pomylić z makrami w języku. Nie chodzi o to, że istnieje niewielka różnica między nimi, ale mogą one być nieco mylące ze względu na posiadane właściwości. W tym artykule omówimy więcej na temat różnic pomiędzy funkcją inline a makrami w C ++.

Inline Funkcja inline jest jak każda inna funkcja w C ++ i jest również wywoływana w standardowy sposób. Funkcja, którą wykonuje, polega na tym, że tworzy kopię skompilowanej definicji funkcji. Oznacza to, że tworzy kopię zdefiniowanych elementów do kompilacji. Przykład można podać, jeśli dodajemy dwie liczby całkowite i nazywamy je funkcją inline, kompilator utworzy kopię liczb całkowitych do kompilacji. Przykład:

Wewnętrzna suma int (int x, int y) { Return (x + y); }

Makro Makra w C ++ implementują zamianę tekstu w linii programu. Oznacza to, że zastępują tekst zgodnie ze zmianą zdefiniowaną w funkcji. W przeciwieństwie do funkcji inline jako funkcji, makro manipuluje kodem za pomocą funkcji. Na przykład: #define DOUBLE (X) X * X

int y = 5; int j = PODWÓJNY (++ y);

Tutaj otrzymamy wartość jako 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. W sumie jest to 5 * 6, czyli 30 nie 6. Sześć stanowiłoby podstawową, ale złą odpowiedź.

Teraz makra mogą powodować błąd tutaj. 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 inline tworzy kopię definicji funkcji. 2. Makro zastępuje tekst jako zidentyfikowany i zdefiniowany w funkcji. 3. Funkcja inline jest również stosowana, gdy makro ma powodować błąd w programie.