Differenza Tra Macro E Funzione Inline

Sommario:

Differenza Tra Macro E Funzione Inline
Differenza Tra Macro E Funzione Inline

Video: Differenza Tra Macro E Funzione Inline

Video: Differenza Tra Macro E Funzione Inline
Video: Topic 10: (Part 3)-inline function|inline function Vs macro|cpp programming 2024, Potrebbe
Anonim

Differenza chiave - Macro vs funzione inline

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 controllata dal preprocessore mentre una funzione inline viene controllata 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.

CONTENUTI

1. Panoramica e differenza fondamentale

2. Che cos'è la macro

3. Che cos'è la funzione inline

4. Confronto affiancato - Macro e funzione inline in formato tabulare

5. Riepilogo

Cos'è la 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 istruzioni, non terminano con un punto e virgola. Un tipo di direttiva del preprocessore è la macro. Generalmente, le macro sono scritte in lettere maiuscole.

Differenza tra macro e funzione inline
Differenza tra macro e funzione inline

Figura 01: programma C ++ con macro

Secondo il programma precedente, la riga 3 e la riga 4 indicano le macro. Quando si calcola l'area, il valore PI viene sostituito utilizzando la macro definita. Nella riga 14, volume = CUBE (valore), il preprocessore espande l'istruzione come volume = (valore * valore * valore). Trovare il cubo può essere scritto come una funzione, ma qui viene scritto usando una macro. Se è presente un'istruzione come volume = CUBE (x + y), si espanderà in volume = (x + y * x + y * x + y).

Alcuni token di programmazione potrebbero essere facilmente digitati in modo errato. Possono essere sostituiti utilizzando le macro. ad es. #define AND &&, #define OR ||. Una definizione di macro può anche includere espressioni come #define AREA 4 * 5.56.

Cos'è la funzione inline?

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

Differenza tra macro e funzione inline Figura 2
Differenza tra macro e funzione inline Figura 2

Figura 02: funzione senza Inline

Print_hello è una semplice funzione. Stampa la stringa “Hello” quando viene chiamata la funzione. Il tempo di esecuzione per quella funzione è di 0,187 secondi. 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 inline
Differenza chiave tra macro e funzione inline

Figura 03: funzione inline

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

Qual è la differenza tra macro e funzione inline?

Articolo diff. Al centro prima della tabella

Macro vs funzione inline

Una macro è un frammento di codice, che è una direttiva del preprocessore inclusa all'inizio del programma preceduta da un segno di cancelletto. Una funzione inline è una funzionalità 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.
Controllati 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 del testo letterale e per definire funzioni ecc. È possibile utilizzare una funzione inline per ridurre al minimo il tempo di esecuzione del programma.
Risoluzione
La macro termina con la nuova riga. La funzione inline termina con la parentesi graffa alla fine della funzione inline.
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 Funzione inline. Questi concetti vengono utilizzati 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.

Raccomandato: