Differenza tra Inline e Macro Differenza tra

Anonim

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.