Différence clé - Macro vs fonction en ligne
Une macro est un fragment de code, qui est une directive du préprocesseur. Une fonction en ligne est une fonctionnalité d'amélioration C++ permettant de minimiser le temps d'exécution d'un programme. Par conséquent, la principale différence entre Macro et Inline Function est qu'une macro est vérifiée par le préprocesseur tandis qu'une fonction inline est vérifiée par le compilateur.
Une macro est incluse au début du programme précédée d'un signe dièse. Lorsqu'il y a le nom de la macro dans le programme, il est remplacé par le contenu de la macro.
Qu'est-ce qu'une macro ?
Le préprocesseur est un programme qui traite le code source avant qu'il ne passe 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 instructions, elles ne se terminent pas par un point-virgule. Un type de directive de préprocesseur est la macro. Généralement, les macros sont écrites en majuscules.
Figure 01: Programme C++ avec macros
Selon le programme ci-dessus, les lignes 3 et 4 indiquent des macros. Lors du calcul de la surface, la valeur PI est remplacée à l'aide de la macro définie. À la ligne 14, volume=CUBE(valeur), le préprocesseur développe l'instruction comme volume=(valeurvaleurvaleur). Trouver le cube peut être écrit comme une fonction, mais ici, il est écrit à l'aide d'une macro. S'il y a une déclaration comme volume=CUBE(x+y), alors elle se développera en volume=(x+yx+yx+y).
Certains jetons de programmation peuvent facilement être mal saisis. Ils peuvent être remplacés à l'aide de macros. par exemple. définir ET &&, définir OU ||. Une définition de macro peut également inclure des expressions telles que define AREA 45.56.
Qu'est-ce que la fonction en ligne ?
Lorsqu'une fonction est appelée, le compilateur met un certain temps à l'exécuter. Si la fonction n'est pas très complexe, le programmeur peut convertir la fonction en une fonction en ligne. Reportez-vous au programme ci-dessous.
Figure 02: Fonction sans Inline
Le print_hello est une fonction simple. Il imprime la chaîne "Hello" lorsque la fonction est appelée. Le temps d'exécution de cette fonction est de 0,187 s. Lorsque vous utilisez le mot-clé inline comme suit, le temps d'exécution est réduit à 0,064 s.
Figure 03: Fonction en ligne
Par conséquent, en utilisant le mot-clé inline, le temps d'exécution diminue. Les fonctions en ligne peuvent ne pas fonctionner s'il y a des boucles, des instructions switch et si la fonction contient des variables statiques ou des fonctions récursives.
Quelle est la différence entre une macro et une fonction en ligne ?
Macro vs fonction en ligne |
|
Une macro est un fragment de code, qui est une directive de préprocesseur incluse au début du programme précédée d'un signe dièse. | Une fonction inline est une fonctionnalité d'amélioration C++ permettant de minimiser le temps d'exécution d'un programme. |
Temps d'évaluation | |
Dans une 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 inline est vérifiée par le compilateur. |
Mot clé | |
Marco utilise define. | La fonction inline utilise le mot clé 'inline'. |
Utilisation | |
La macro peut être utilisée pour définir des constantes, des expressions, pour la substitution de texte littéral et pour définir des fonctions, etc. | Une fonction en ligne peut être utilisée pour minimiser le temps d'exécution du programme. |
Résiliation | |
La macro se termine par la nouvelle ligne. | La fonction en ligne se termine par l'accolade à la fin de la fonction en ligne. |
Point de définition | |
Un Marco est défini au début du programme. | Une fonction inline peut être à l'intérieur ou à l'extérieur de la classe. |
Résumé - Macro vs fonction en ligne
Cet article traite 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 Macro et Inline Function est qu'une macro est vérifiée par le préprocesseur tandis qu'une fonction inline est vérifiée par le compilateur.