Considérez le code suivant:
COMMENCERLe code ci-dessus n'est pas un code C valide.
Mais le code suivant est valide:
//Exemple 1.cAvant la compilation, le démarrage de la macro, entier, l'impression et la fin ont été remplacés par leur valeur, et le code devient un code C valide. Nous pouvons vérifier en utilisant la commande suivante:
GCC -E Exemple1.cCette commande affichera après avoir élargi toutes les macros.
Maintenant, nous verrons différents types de macros:
1. Macros de type objet:
Syntaxe:
#define macro_name macro_valueSi la macro prend plus d'une ligne, nous pouvons le faire comme suit:
#define macro_name macro_value1 \Cette macro ressemble à un objet de données qui est pourquoi ce type de macro appelé macro de type objet.
// Exemple2.cDans Exapmle2.C, Max est une macro. De la sortie, nous observons que Max est remplacé par sa valeur 200.
2. Macros de type fonction:
Syntaxe:
#define macro_name () macro_valuemacro_name est un nom défini par l'utilisateur de la macro. La paire de parenthèses doit mettre après le macro_name. Aucun espace n'est autorisé entre macro_name et parenthèse. Nous pouvons également passer des arguments dans ce type de macros.
#define add (x, y) x + yCette macro ressemble à un appel de fonction qui est pourquoi ce type de macro appelé macro de type fonction.
// Exemple3.cDans l'exemple3.c, Nous avons vu que contrairement à la fonction de C, la macro ne remplace que le code par des arguments sans le calculer. Ainsi, nous pouvons transmettre différents types de données en utilisant la même macro.
Si nous mettons un espace entre le nom de macro et les parenthèses, cela fonctionne de la même manière qu'une macro de type objet. L'exemple ci-dessous C illustre ceci.
// Exemple4.cDans l'exemple4.C, nous avons vu que l'ajout de macro est remplacé par (x, y) x + y . Identique à une macro de type objet.
3. Macro pour coller de jetons:
En langue C, l'opérateur ## est utilisé pour le collage de jetons. En utilisant cet opérateur, nous pouvons combiner deux jetons valides en un jeton valide.
Exemple:
Si nous essayons de coller des jetons qui ne génère pas de jeton valide, le compilateur C donne une erreur ou un avertissement.
// Exemple6.cDans Exemple6.c, Nous avons un message d'erreur car, après une combinaison de deux jetons, nous obtenons un jeton invalide '52 + '.
4. Macro pour corriger:
Dans le langage C, l'opérateur # est utilisé pour convertir un paramètre macro en constante de chaîne. Lorsqu'un opérateur # précède d'un paramètre macro, le paramètre se convertit en une chaîne littérale. Le stringage peut être utilisé pour les macros de type objet et de fonction.
Exemple:
Dans Exemple7.c Nous avons une chaîne «Hello World» en utilisant la macro de chaîne.
Conclusion:
Cet article a appris tous les types de macro Macros de type objet, Macros de type fonction, Macro pour coller de jetons, Macro pour corriger et macro pour corriger en langue C. Nous pouvons maintenant utiliser une macro dans notre programme C.