Différence entre Inline et Macro Différence entre

Anonim

Inline vs Macro

C ++ est allé beaucoup trop loin dans le domaine de la programmation informatique de nos jours. Étant un langage puissant, il devient parfois un peu déroutant pour les programmeurs en raison de son énorme bibliothèque de fonctions. La fonction inline est l'une d'entre elles qui peut facilement être confondue avec les macros dans la langue.

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 possèdent. Dans cet article, nous discuterons plus sur les différences entre la fonction inline et les macros en C ++.

Inline

Une fonction inline est comme n'importe quelle autre fonction en C ++ et est également appelée de façon régulière. La fonction qu'il exécute est qu'il crée une copie de la définition de la fonction compilée. Autrement dit, 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 inline, le compilateur créera une copie des entiers à compiler.

Exemple:

Inline int somme (int x, int y)

{

Retour (x + y);

}

Macro

Les macros en C ++ implémentent le remplacement de texte dans une ligne de programme. Autrement dit, ils remplacent le texte en fonction du changement défini dans la fonction. Contrairement à la fonction inline, 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é fait via une macro, "X" a été remplacé par ++ y, ce qui fait que ++ y est multiplié par un autre ++ y. Cela fait un total de 5 * 6 qui est de 30 pas 6. Six serait la réponse de base mais une mauvaise réponse.

Maintenant, les macros pourraient causer un bug ici. Ainsi, une fonction inline vient à la rescousse en copiant les valeurs dans la mémoire des compilateurs et en les compilant ensuite.

Résumé:

1. Une fonction inline crée une copie de la définition de la fonction.

2. Une macro remplace le texte tel qu'identifié et défini dans la fonction.

3. Une fonction inline est également appliquée lorsqu'une macro est supposée provoquer un bogue dans le programme.