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.
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.
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.
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.