Différence entre Inline et Macro

Inline vs Macro

C ++ est allé trop loin dans le domaine de la programmation informatique ces jours-ci. Étant un langage puissant, il est parfois déroutant pour les programmeurs à cause de son immense bibliothèque de fonctions. La fonction en ligne est l’une d’entre elles qui peut facilement être confondue avec les macros du langage.
Ce n'est pas qu'il y ait une différence mineure entre les deux, mais ils peuvent être un peu déroutants à cause des propriétés qu'ils détiennent. Dans cet article, nous discuterons plus en détail des différences entre la fonction inline et les macros en C++.

En ligne
Une fonction en ligne est comme n'importe quelle autre fonction en C ++ et est également appelée de manière classique. La fonction qu'il exécute est de créer une copie de la définition de la fonction compilée. C'est-à-dire qu'il crée une copie des éléments définis à compiler. Un exemple peut être pris si nous ajoutons deux entiers quelconques et que nous l'appelons la fonction inline, le compilateur créera une copie des entiers à compiler..
Exemple:

Inline int sum (int x, int y)

Retour (x + y);

Macro
Les macros en C ++ implémentent le remplacement de texte dans une ligne de programme. C'est-à-dire qu'ils remplacent le texte en fonction du changement défini dans la fonction. Contrairement à une fonction en ligne, une macro manipule le code à l'aide d'une fonction. Par exemple:
#define DOUBLE (X) X * X

int y = 5;
int j = DOUBLE (++ y);

Ici, nous aurons la valeur à 30! Comme l'appel a été effectué via une macro, “X” a été remplacé par ++ y, ce qui permet à ++ y d'être multiplié par un autre ++ y. Cela fait un total de 5 * 6, soit 30 pas 6. Six serait la réponse de base mais une mauvaise réponse.

Maintenant, les macros peuvent être à l'origine d'un bogue ici. Une fonction en ligne vient donc à la rescousse en copiant les valeurs dans la mémoire des compilateurs, puis en les compilant..

Résumé:

1.Une fonction inline crée une copie de la définition de fonction.
2.Une macro remplace le texte identifié et défini dans la fonction.
3.Une fonction inline est également appliquée lorsqu'une macro est supposée causer un bogue dans le programme.