Una macro è un frammento di codice, che è una direttiva preprocessore. Una funzione inline è una funzionalità di miglioramento C ++ per ridurre al minimo il tempo di esecuzione di un programma. quindi, il differenza fondamentale tra Macro e Inline Function è quello 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 c'è il nome della macro nel programma, viene sostituito dal contenuto della macro.
1. Panoramica e differenza chiave
2. Cos'è la macro
3. Che cos'è la funzione Inline
4. Confronto affiancato - Funzione Macro vs Inline in forma tabulare
5. Sommario
Il preprocessore è un programma che elabora il codice sorgente prima che passi attraverso il compilatore. Funziona usando la riga di comando del preprocessore o le direttive. Nel programma, le direttive del preprocessore sono 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 dichiarazioni, non terminano con un punto e virgola. Un tipo di direttiva per il preprocessore è macro. In generale, le macro sono scritte in lettere maiuscole.
Figura 01: Programma C ++ con macro
Secondo il programma di cui sopra, 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 è scritto usando una macro. Se c'è un'istruzione come volume = CUBE (x + y), allora si espanderà a volume = (x + y * x + y * x + y).
Alcuni token di programmazione potrebbero facilmente essere digitati in modo errato. Possono essere sostituiti utilizzando macro. per esempio. #define AND &&, #define OR ||. Una definizione di macro può anche includere espressioni come #define AREA 4 * 5.56.
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 seguente.
Figura 02: Funzione senza Inline
Print_hello è una funzione semplice. Stampa la stringa "Hello" quando viene chiamata la funzione. Il tempo di esecuzione per quella funzione è di 0,187 s. 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 ci sono loop, istruzioni switch e se la funzione contiene variabili statiche o funzioni ricorsive.
Funzione Macro vs Inline | |
Una macro è un frammento di codice, che è una direttiva preprocessore inclusa all'inizio del programma preceduta da un cancelletto. | Una funzione inline è una funzionalità di miglioramento 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 è controllata dal compilatore. |
Parola chiave | |
Marco usa #define. | La funzione inline utilizza la parola chiave "in linea". |
uso | |
La macro può essere utilizzata per definire costanti, espressioni, per la sostituzione letterale del testo e per definire le funzioni ecc. | È possibile utilizzare una funzione inline per ridurre al minimo il tempo di esecuzione del programma. |
fine | |
La macro termina con la nuova riga. | La funzione inline termina con la parentesi graffa alla fine della funzione inline. |
Definizione del punto | |
Un Marco è definito all'inizio del programma. | Una funzione inline può essere all'interno o all'esterno della classe. |
Questo articolo ha discusso la differenza tra la funzione Macro e Inline. Questi concetti sono usati nella programmazione C ++. La differenza tra la funzione Macro e Inline è che una macro viene controllata dal preprocessore mentre una funzione inline viene controllata dal compilatore.
1. "Direttive preprocessore". Cplusplus.com. Disponibile qui
2. "Funzioni in linea C". Www.tutorialspoint.com, Tutorials Point, 19 marzo 2018. Disponibile qui