next up previous contents
Next: Résultats en cours Up: Macro commandes : Previous: Arguments différésarguments

Non-initialisation des variables

Comme nous l'avons vu, la procédure étant semi-perméable, ell va chercher dans le monde externe la valeur des objets qu'elle utilise. Pour éviter cette recherche il faut faire commencer le nom de l'objet par un point d'exclamation ("!"). Examinons les deux procédures suivantes dans lesquelles une erreur de frappe c'est glissée:

 
   'DEBPROC'  PASBELLE  II*'ENTIER'  JJ*'ENTIER';
      AD  = II + JJ;
      MU  = II * JJ ;     
      RES = MU - ADD;
* la bonne ligne est : RES = MU - AD; 
   'FINPROC'  RES ;
   
   'DEBPROC'  JOLIE  II*'ENTIER' JJ*'ENTIER';
       !AD = II + JJ ;
       !MU = II * JJ ;
       !RES = !MU - !ADD;
* la bonne ligne est : !RES = !MU - !AD; 
   'FINPROC'  MOD ;
   
* utilisons maintenant ces procédures 

    ADD = 456 ; !ADD = 456 ;  K = 5  ; I =  3 ;
    X = PASBELLE  K I ; 
    Y = JOLIE  K I ;
L'appel à PASBELLE fournit un résultat qui vaut -441 ! Alors que l'appel à JOLIE provoque une erreur. Pour les gens très courageux, il est bon de donner un nom commençant par ! pour toutes les variables internes aux procédures, il en résulte une plus grande sureté.



mer 20 jan 14:43:49 NFT 1999