Différence entre Inline et Macro
Inline ou Macro
C+++ est allé beaucoup trop loin dans le domaine de la programmation informatique ces jours-ci. Étant un langage puissant, il devient parfois un peu confus pour les programmeurs à cause de son énorme bibliothèque de fonctions. La fonction Inline est l'une d'entre elles qui peut facilement être confondue avec des macros dans la langue.
Ce n'est pas qu'il y a une petite différence entre les deux, mais ils peuvent être un peu confus en raison des propriétés qu'ils possèdent. Dans cet article, nous allons discuter plus en détail des différences entre la fonction en ligne 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 régulière. La fonction qu'il exécute est de créer une copie de la définition de fonction compilée. En d'autres termes, il crée une copie des éléments définis à compiler. Un exemple peut être pris si nous ajoutons deux entiers et l'appelons la fonction en ligne, le compilateur va créer une copie des entiers à compiler.
Exemple :
Inline int 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. En d'autres termes, ils remplacent le texte en fonction de la modification définie 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 obtiendrons la valeur de 30 ! Comme l'appel a été effectué via une macro, "X" a été remplacé par ++y ce qui fait que ++y doit être multiplié par un autre ++y. Ce qui fait un total de 5*6 soit 30 et non 6. Six serait la réponse de base, mais une mauvaise réponse.
Maintenant, les macros peuvent causer un bug ici. Une fonction en ligne vient donc à la rescousse en copiant les valeurs dans la mémoire du compilateur et en les compilant.
Les idées Clis
Une fonction en ligne crée une copie de la définition de la fonction.
Une macro remplace le texte tel qu'identifié et défini dans la fonction.
Une fonction en ligne est également appliquée lorsqu'une macro est censée provoquer un bogue dans le programme.
Une question ? Nous avons oublié quelque chose ? n'hésitez pas à participer aux commentaires. Nous compléterons cet article avec plaisir.