Différence Entre La Fonction Macro Et La Fonction En Ligne

Table des matières:

Différence Entre La Fonction Macro Et La Fonction En Ligne
Différence Entre La Fonction Macro Et La Fonction En Ligne

Vidéo: Différence Entre La Fonction Macro Et La Fonction En Ligne

Vidéo: Différence Entre La Fonction Macro Et La Fonction En Ligne
Vidéo: TUTO C+ : Fonctions « inline » 2024, Novembre
Anonim

Différence clé - Fonction Macro vs Inline

Une macro est un fragment de code, qui est une directive de préprocesseur. Une fonction en ligne est une fonctionnalité d'amélioration du C ++ pour minimiser le temps d'exécution d'un programme. Par conséquent, la principale 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.

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

CONTENU

1. Présentation et différence clé

2. Qu'est-ce que la macro

3. Qu'est-ce que la fonction en ligne

4. Comparaison côte à côte - Fonction macro et fonction 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 qu'il ne passe par le compilateur. Il fonctionne en utilisant la ligne de commande du préprocesseur ou les 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 de préprocesseur. Les directives du préprocesseur ont le symbole #. Contrairement aux 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.

Différence entre la fonction macro et la fonction en ligne
Différence entre la fonction macro et la fonction en ligne

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 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 = (valeur * valeur * valeur). Trouver le cube peut être écrit comme une fonction, mais ici, il est écrit à l'aide d'une macro. S'il y a une instruction comme volume = CUBE (x + y), alors il s'étendra à volume = (x + y * x + y * x + y).

Certains jetons de programmation peuvent facilement être mal saisis. 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.

Qu'est-ce que 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 fonction en ligne. Référez-vous au programme ci-dessous.

Différence entre la macro et la fonction en ligne Figure 2
Différence entre la macro et la fonction en ligne Figure 2

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é en ligne comme suit, le temps d'exécution est réduit à 0,064 s.

Différence clé entre la fonction macro et la fonction en ligne
Différence clé entre la fonction macro et la fonction en ligne

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 existe 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 fonction macro et la fonction en ligne?

Diff article au milieu avant la table

Fonction Macro vs Inline

Une macro est un fragment de code, qui est une directive de préprocesseur qui est incluse au début du programme précédée d'un signe de hachage. Une fonction en ligne est une fonctionnalité d'amélioration du 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 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 en ligne peut être à l'intérieur ou à l'extérieur de la classe.

Résumé - Fonction Macro vs Inline

Cet article a décrit la différence entre la macro et la fonction en ligne. Ces concepts sont utilisés dans la programmation C ++. La différence entre une macro et une 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.

Recommandé: