Differenza tra funzione Macro e Inline

Sommario:

Differenza tra funzione Macro e Inline
Differenza tra funzione Macro e Inline

Video: Differenza tra funzione Macro e Inline

Video: Differenza tra funzione Macro e Inline
Video: What is difference between Macro and Function 2024, Luglio
Anonim

Differenza chiave – Macro e funzione in linea

Una macro è un frammento di codice, che è una direttiva del preprocessore. Una funzione inline è una funzionalità di miglioramento di C++ per ridurre al minimo il tempo di esecuzione di un programma. Pertanto, la differenza fondamentale tra Macro e Inline Function è che una macro viene verificata dal preprocessore mentre una funzione inline viene verificata dal compilatore.

Una macro è inclusa all'inizio del programma preceduta da un cancelletto. Quando è presente il nome della macro nel programma, viene sostituito dal contenuto della macro.

Cos'è Macro?

Il preprocessore è un programma che elabora il codice sorgente prima che passi attraverso il compilatore. Funziona utilizzando la riga di comando del preprocessore o le direttive. Nel programma, le direttive del preprocessore vengono inserite nel programma sorgente prima del programma principale. Prima che il codice sorgente passi attraverso il compilatore, viene controllato dal preprocessore per le direttive del preprocessore. Le direttive del preprocessore hanno il simbolo. A differenza di altre affermazioni, non terminano con un punto e virgola. Un tipo di direttiva del preprocessore è la macro. Generalmente, le macro sono scritte in maiuscolo.

Differenza tra macro e funzione in linea
Differenza tra macro e funzione in linea

Figura 01: Programma C++ con macro

Secondo il programma sopra, la riga 3 e la riga 4 indicano le macro. Nel calcolo dell'area, il valore PI viene sostituito utilizzando la macro definita. Nella riga 14, volume=CUBE(value), il preprocessore espande l'istruzione come volume=(valuevaluevalue). Trovare il cubo può essere scritto come una funzione, ma qui è scritto usando una macro. Se c'è un'istruzione come volume=CUBE(x+y), allora si espanderà a volume=(x+yx+yx+y).

Alcuni token di programmazione potrebbero essere facilmente digitati in modo errato. Possono essere sostituiti usando le macro. per esempio. definisci AND &&, definisci OR ||. Una definizione di macro può includere anche espressioni come define AREA 45.56.

Cos'è la funzione in linea?

Quando viene chiamata una funzione, il compilatore impiega del tempo per eseguirla. Se la funzione non è molto complessa, il programmatore può convertire la funzione in una funzione inline. Fare riferimento al programma sottostante.

Differenza tra funzione macro e inline_Figura 2
Differenza tra funzione macro e inline_Figura 2

Figura 02: Funzione senza Inline

Il print_hello è una semplice funzione. Stampa la stringa “Hello” quando viene chiamata la funzione. Il tempo di esecuzione per quella funzione è 0,187 s. Quando si utilizza la parola chiave inline come segue, il tempo di esecuzione si riduce a 0,064 s.

Differenza chiave tra macro e funzione in linea
Differenza chiave tra macro e funzione in linea

Figura 03: Funzione in linea

Pertanto, utilizzando la parola chiave inline, il tempo di esecuzione si riduce. Le funzioni inline potrebbero non funzionare se sono presenti loop, istruzioni switch e se la funzione contiene variabili statiche o funzioni ricorsive.

Qual è la differenza tra la funzione Macro e Inline?

Macro e funzione in linea

Una macro è un frammento di codice, che è una direttiva del preprocessore inclusa all'inizio del programma preceduta da un cancelletto. Una funzione inline è una funzione di miglioramento di C++ per ridurre al minimo il tempo di esecuzione di un programma.
Tempo di valutazione
Nella macro, l'argomento viene valutato ogni volta che viene utilizzato nel programma. In linea, l'argomento viene valutato una volta.
Controllato da
Una macro viene controllata dal preprocessore. Una funzione inline viene controllata dal compilatore.
Parola chiave
Marco usa define. La funzione inline utilizza la parola chiave 'inline'.
Utilizzo
La macro può essere utilizzata per definire costanti, espressioni, per la sostituzione letterale del testo e per definire funzioni ecc. Una funzione inline può essere utilizzata per ridurre al minimo il tempo di esecuzione del programma.
Risoluzione
La macro termina con la nuova riga. La funzione in linea termina con la parentesi graffa alla fine della funzione in linea.
Punto di definizione
Un Marco è definito all'inizio del programma. Una funzione inline può essere all'interno o all'esterno della classe.

Riepilogo – Macro e funzione in linea

Questo articolo ha discusso la differenza tra Macro e Inline Function. Questi concetti sono usati nella programmazione C++. La differenza tra Macro e Inline Function è che una macro viene controllata dal preprocessore mentre una funzione inline viene controllata dal compilatore.

Consigliato: