Différence entre la macro et la fonction en ligne

Différence entre la macro et la fonction en ligne

Différence clé - MAcRo vs en ligne Fonction
 

Une macro est un fragment de code, qui est une directive préprocesseur. Une fonction en ligne est une fonction d'amélioration C ++ pour minimiser le temps d'exécution d'un programme. Par conséquent, la différence clé Entre la fonction macro et en ligne est que Une macro est vérifiée par le préprocesseur tandis qu'une fonction en ligne est vérifiée par le compilateur.

Une macro est incluse au début du programme précédé d'un signe de hachage. Lorsqu'il y a le nom de macro dans le programme, il est remplacé par le contenu de la macro.

CONTENU

1. Aperçu et différence clé
2. Qu'est-ce que la macro
3. Quelle est la fonction en ligne
4. Comparaison côte à côte - Fonction de macro vs en ligne sous forme tabulaire
5. Résumé

Qu'est-ce que la macro?

Le préprocesseur est un programme qui traite le code source avant de passer par le compilateur. Il fonctionne à l'aide de la ligne de commande du préprocesseur ou des directives. Dans le programme, les directives du préprocesseur sont placées dans le programme source avant le programme principal. Avant que le code source ne passe par le compilateur, il est vérifié par le préprocesseur pour les directives du préprocesseur. Les directives du préprocesseur ont le symbole #. Contrairement à d'autres déclarations, ils ne se terminent pas avec un point-virgule. Un type de directive de préprocesseur est macro. Généralement, les macros sont écrites en majuscules.

Figure 01: Programme C ++ avec macros

Selon le programme ci-dessus, la ligne 3 et la ligne 4 indiquent les macros. Lors du calcul de la zone, la valeur PI est substituée à l'aide de la macro définie. Dans la ligne 14, volume = cube (valeur), le préprocesseur étend l'instruction en tant que volume = (valeur * valeur * valeur). Trouver le cube peut être écrit en fonction, mais ici, il est écrit à l'aide d'une macro. S'il y a une instruction comme volume = cube (x + y), alors elle s'étendra à volume = (x + y * x + y * x + y).

Certains jetons de programmation pourraient facilement être trompés. Ils peuvent être remplacés à l'aide de macros. e.g. #define et &&, #define ou ||. Une définition macro peut également inclure des expressions telles que la zone #define 4 * 5.56.

Quelle est la fonction en ligne?

Lorsqu'une fonction est appelée, le compilateur prend un certain temps pour l'exécuter. Si la fonction n'est pas très complexe, le programmeur peut convertir la fonction en une fonction en ligne.  Référer le programme ci-dessous.

Figure 02: fonction sans en ligne

Le print_hello est une fonction simple. Il imprime la chaîne «bonjour» lorsque la fonction est appelée.  Le temps d'exécution de cette fonction est 0.187. Lorsque vous utilisez le mot-clé en ligne comme suit, le temps d'exécution se réduit à 0.064.

Figure 03: Fonction en ligne

Par conséquent, en utilisant le mot clé en ligne, le temps d'exécution réduit. Les fonctions en ligne peuvent ne pas fonctionner s'il y a des boucles, des instructions de commutation et si la fonction contient des variables statiques ou des fonctions récursives.

Quelle est la différence entre la macro et la fonction en ligne?

Fonction macro vs en ligne

Une macro est un fragment de code, qui est une directive préprocesseur incluse au début du programme précédé d'un signe de hachage. Une fonction en ligne est une fonction d'amélioration C ++ pour minimiser le temps d'exécution d'un programme.
Temps d'évaluation
En macro, l'argument est évalué chaque fois qu'il est utilisé dans le programme. En ligne, l'argument est évalué une fois.
Vérifié par
Une macro est vérifiée par le préprocesseur. Une fonction en ligne est vérifiée par le compilateur.
 Mot-clé
Marco utilise #define. La fonction en ligne utilise le mot-clé «en ligne».
Usage
La macro peut être utilisée pour définir les constantes, les expressions, pour la substitution de texte littéral et pour définir les fonctions, etc. Une fonction en ligne peut être utilisée pour minimiser le temps d'exécution du programme.
Résiliation
Macro se termine avec la nouvelle ligne. La fonction en ligne se termine avec l'attelle bouclée à la fin de la fonction en ligne.
Point de définition
Un marco est défini au début du programme. Une fonction en ligne peut être à l'intérieur ou à l'extérieur de la classe.

Résumé - MamecRo vs en ligne Fonction

Cet article a discuté de la différence entre la macro et la fonction en ligne. Ces concepts sont utilisés dans la programmation C ++. La différence entre la macro et la fonction en ligne est qu'une macro est vérifiée par le préprocesseur tandis qu'une fonction en ligne est vérifiée par le compilateur.

Référence:

1."Directives du préprocesseur.”CPLUSPLUS.com. Disponible ici 
2.«C fonctions en ligne.»Www.tutorielpoint.com, Tutorials Point, 19 mars. 2018. Disponible ici