Résumé
En programmation informatique, une macro-définition ou simplement macro est l'association d'un texte de remplacement à un identificateur, tel que l'identificateur est remplacé par le texte dans tout usage ultérieur. Le plus souvent, on permet également le passage de paramètres syntaxiques. L'usage d'une macro comme instruction est souvent appelée macro-instruction et l'opération de remplacement d'une macro-instruction par sa définition la macro-expansion. Les macros sont donc un moyen de faire de la métaprogrammation. Une macro est un motif de substitution de texte pouvant prendre des arguments. Un langage de macro copie le texte donné en entrée sur sa sortie. Au cours du processus, le texte est décomposé en unités lexicales, et chaque fois qu'un nom de macro est rencontré, celui-ci est replacé par sa définition. Lorsque après une substitution, l'analyse reprend au début du texte inséré, le langage est dit récursif. La plupart des langages disposent également de structures conditionnelles. L'idée d'utiliser ce mécanisme afin d'automatiser la génération de partie de code répétitives date de l'assembleur des années 1950. Cette idée a été formalisée en 1959 et 1960 en y introduisant les concepts de récursivité et de structure conditionnelle. Différentes implémentations de langage de macro ont été réalisées dans les années suivantes, GPM (1965), M4 (1977). Les premiers langages faisaient une utilisation intensive de macros, celles-ci représentant une alternative à l'utilisation de fonctions ou de procédures lorsque le coût d'appel de la routine est important face ou coût de son traitement. Le préprocesseur du langage C utilise ainsi un langage de macro. La directive #define introduit une macro-définition qui permet de déclarer : une constante ; une macro-instruction ; un type personnalisé. Une constante peut être déclarée par la directive #define NOMBRE_UTILISATEURS 25 + 3. À chaque fois que le préprocesseur du compilateur rencontre l'étiquette NOMBRE_UTILISATEURS dans le code source, il la remplace par 25 + 3.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.