Différence entre en ligne et macro

Différence entre en ligne et macro

En ligne vs macro

C ++ est allé 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 en ligne est l'une d'entre elles qui peut facilement être confondue avec les macros dans la langue.
Ce n'est pas qu'il y a 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 en discuterons davantage sur les différences entre la fonction en ligne et les macros en C++.

En ligne
Une fonction en ligne est comme toute autre fonction en C ++ et est également appelée de la manière 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. 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 et l'appelons la fonction en ligne, le compilateur créera une copie des entiers à compiller.
Exemple:

En ligne int sum (int x, int y)

Return (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 à Inline en fonction, 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 qui fait ++ y à multiplier par un autre ++ y. Cela fait un total de 5 * 6 qui est 30 pas 6. Six seraient la base mais une mauvaise réponse.

Maintenant, les macros pourraient provoquer un bug ici. Ainsi, une fonction en ligne arrive à la rescousse en copiant les valeurs à la mémoire des compilateurs, puis en la compilant.

Résumé:

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