> Tech > Opérations de type mathématique, logique et chaîne

Opérations de type mathématique, logique et chaîne

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

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

Plan de sécurité Microsoft 365

Plan de sécurité Microsoft 365

Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech