Directives de compilation portant sur les chaînes

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Utilisation des chaînes


Les directives Object Pascal de compilation suivantes affectent les types caractère et chaîne.

Directives de compilation portant sur les chaînes

Directive Description

{$H+/-}

Une directive de compilation, $H, détermine si le mot réservé string correspond à une chaîne longue ou courte. A l'état par défaut, {$H+}, string représente une chaîne longue. Vous pouvez le changer en ShortString en utilisant la directive {$H-}.

{$P+/-}

La directive $P, proposée pour la compatibilité ascendante avec les versions précédentes, n'a de sens que pour le code compilé à l'état {$H-}. $P contrôle la signification des paramètres variables déclarés en utilisant le mot réservé string en étant à l'état {$H-}. En mode {$P-} les paramètres variables déclarés à l'aide du mot clé string sont des paramètres variables normaux, alors qu'en mode {$P+}, il s'agit de paramètres chaînes ouverts. Indépendamment de l'état de la directive $P, il est toujours possible d'utiliser l'identificateur OpenString pour déclarer des paramètres chaîne ouverte.

{$V+/-}

La directive $V contrôle la vérification de type des chaînes courtes transmises en paramètres par adresse. En mode {$V+} un contrôle strict des types est effectué, qui exige que les paramètres formels et effectifs soient du même type de chaîne. En mode {$V-} n'importe quelle variable de type chaîne courte est autorisée en tant que paramètre effectif, même si sa longueur maximale déclarée diffère de celle du paramètre formel. Cela peut entraîner une corruption de la mémoire. Par exemple : var S: string[3];.

procedure Test(var T: string);
begin
  T := '1234';
end;
begin
  Test(S);
end.

{$X+/-}

La directive de compilation {$X+} permet de gérer les chaînes à zéro terminal en activant des règles particulières qui s'appliquent au type prédéfini PChar et aux tableaux de caractères d'indice de base zéro. Ces règles permettent d'utiliser des tableaux de caractères d'indice de base zéro ou des pointeurs de caractère avec les routines Write, Writeln, Val, Assign et Rename de l'unité System.

Voir aussi