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

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

Tech - Par iTPro - Publié le 24 juin 2010
email

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 gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 24 juin 2010