Différence entre la macro et la fonction en ligne

Différence clé - Macro vs Inline Une fonction
 

Une macro est un fragment de code, qui est une directive de préprocesseur. Une fonction en ligne est une fonctionnalité d’amélioration C ++ permettant de réduire le temps d’exécution d’un programme. Par conséquent, la différence clé entre Macro et Inline Function 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ée d'un signe dièse. Quand il y a un nom de macro dans le programme, il est remplacé par le contenu de la macro.

CONTENU

1. Vue d'ensemble et différence clé
2. Quelle est la macro
3. Quelle est la fonction en ligne
4. Comparaison côte à côte - Macro vs Fonction en ligne sous forme de tableau
5. Résumé

Quelle est la 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 à la recherche de directives de préprocesseur. Les directives du préprocesseur ont le symbole #. Contrairement à d'autres déclarations, elles ne se terminent pas par 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, les lignes 3 et 4 indiquent des macros. Lors du calcul de la surface, la valeur PI est remplacée par la macro définie. Sur la ligne 14, volume = CUBE (valeur), le préprocesseur développe l'instruction en tant que volume = (valeur * valeur * valeur). Trouver le cube peut être écrit sous forme de fonction, mais ici, il est écrit en utilisant une macro. S'il existe une déclaration sous la forme volume = CUBE (x + y), elle sera étendue à volume = (x + y * x + y * x + y).

Certains jetons de programmation peuvent facilement être mal typés. Ils peuvent être remplacés à l'aide de macros. par exemple. #define AND &&, #define OR ||. Une définition de macro peut également inclure des expressions telles que #define AREA 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. Voir le programme ci-dessous.

Figure 02: Fonction sans Inline

Print_hello est une fonction simple. Il affiche la chaîne «Hello» lorsque la fonction est appelée. Le temps d'exécution pour cette fonction est de 0,187s. Lorsque vous utilisez le mot-clé inline comme suit, le temps d'exécution est réduit à 0.064s.

Figure 03: Fonction en ligne

Par conséquent, en utilisant le mot clé inline, le temps d'exécution est réduit. Les fonctions en ligne risquent de 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 la macro et la fonction en ligne?

Fonction macro vs 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 en ligne est une fonctionnalité d'amélioration C ++ permettant de réduire 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 inline utilise le mot clé 'inline'.
Usage
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
Macro se termine avec 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 en ligne peut être à l'intérieur ou à l'extérieur de la classe.

Résumé - Macro vs Inline Une fonction

Cet article a traité de la différence entre les fonctions macro et 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.

Référence:

1. «Directives relatives au préprocesseur». Cplusplus.com. Disponible ici 
2. «C Inline Functions». Www.tutorialspoint.com, Point sur les tutoriels, 19 mars 2018. Disponible ici