Differenza tra Inline e Macro Differenza tra
In linea vs Macro
C ++ è andato troppo lontano nel campo della programmazione di computer in questi giorni. Essendo un linguaggio potente, a volte diventa un po 'di confusione per i programmatori a causa della sua enorme libreria di funzioni. La funzione inline è una di quelle che può essere facilmente confusa con i macro nella lingua.
Non è che ci sia una piccola differenza tra i due, ma possono essere un po 'di confusione a causa delle proprietà che detengono. In questo articolo, discuteremo di più sulle differenze tra funzione inline e macro in C ++.
Inline
Una funzione inline è come qualsiasi altra funzione in C ++ e viene anche chiamata in modo regolare. La funzione che esegue è quella di creare una copia della definizione della funzione compilata. Cioè, crea una copia degli elementi definiti da compilare. Un esempio può essere preso se stiamo aggiungendo due numeri interi e lo chiamiamo la funzione inline, il compilatore creerà una copia degli interi da compilare.
Esempio:
Int somma int (int x, int y)
{
Return (x + y);
}
Macro
I macro in C ++ implementano la sostituzione del testo in una riga di programma. Cioè, sostituiscono il testo in base alla modifica definita nella funzione. A differenza di inline come funzione, una macro manipola il codice utilizzando una funzione. Ad esempio:
#define DOUBLE (X) X * X
int y = 5;
int j = DOUBLE (++ y);
Qui, otterremo il valore come 30! Dato che la chiamata è stata effettuata tramite una macro, "X" è stata sostituita con ++ y che rende ++ y moltiplicato per un altro ++ y. Questo fa un totale di 5 * 6 che è 30 non 6. Sei sarebbe la risposta base ma sbagliata.
Ora, le macro potrebbero causare un bug qui. Quindi una funzione inline viene in soccorso copiando i valori nella memoria del compilatore e quindi compilandolo.
Riepilogo:
1. Una funzione inline crea una copia della definizione della funzione.
2. Una macro sostituisce il testo come identificato e definito all'interno della funzione.
3. Una funzione inline viene applicata anche quando una macro dovrebbe causare un bug nel programma.