Plusieurs macros m4 intégrées peuvent manipuler des entiers représentés comme des chaînes de chiffres. Cet exemple montre comment incrémenter la valeur numérique d’une macro varcount :
define(<<varcount>>,0)
define(<<varcount>>,incr(varcount))
On ne met généralement pas entre guillemets le nom d’une macro
Opérations de type mathématique, logique et chaîne
de comptage quand elle est utilisée comme argument d’une macro mathématique intégrée. Dans l’exemple précédent, la macro varcount est redéfinie avec la représentation de chaîne incr(0), c’est-à-dire 1. Par conséquent, tout appel ultérieur à varcount est remplacé par 1 également. La macro eval s’étend en une chaîne qui est la valeur d’une expression mathématique ou logique. Par exemple, dans la séquence
define(<<varcount>>,0)
eval(varcount+1)
la macro eval s’étend à 1. M4 fournit plusieurs macros intégrées pour la manipulation de chaînes, y compris len (string length = longueur de chaîne) et substr (substring = sous-chaîne).
Les macros peuvent être appelées récursivement et m4 reconnaît les macros intégrées pushdef et popdef pour pousser et faire surgir des définitions de macros sur une pile. Ces deux fonctions permettent d’écrire de petits programmes avec itération. Travailler avec des macros récursives est utile dans certains cas, mais il faut faire attention à éviter des macros incontrôlées.
Téléchargez cette ressource
Comment sécuriser une PME avec l’approche par les risques ?
Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- L’IA comme levier d’évangélisation du COMEX à la cybersécurité
- Intégration et utilisation de l’IA en 3 conseils clés
- CRM : quand l’IA fait dans le détail
- Baromètre cybersécurité 2023 : Top 7 des enseignements
- Sauvegarde : Comment protéger les données contre les menaces de ransomware en constante évolution ?