Expression POINTER-32

Un élément de données défini avec USAGE IS POINTER-32 est un élément de données de pointeur ou data-pointer. Un élément de données de pointeur est un élément élémentaire à 4 octets quel que soit le paramètre d'option de compilateur PL.

Vous pouvez utiliser des éléments de données POINTER-32 pour effectuer un adressage de base limité. Les éléments de données de pointeur peuvent être comparés pour l'égalité ou déplacés vers d'autres éléments de pointeur.

Un élément de données POINTER-32 ne peut être utilisé que:

  • Dans une instruction ALLOCATE
  • Dans une instruction FREE
  • Dans une instruction SET (format 5 uniquement)
  • Dans une condition de relation
  • Dans l'expression USING d'une instruction CALL, d'une instruction ENTRY ou de l'en-tête PROCEDURE DIVISION
Un élément de données POINTER-32 peut être défini sur un élément de données POINTER, et inversement. Lorsque l'option de compilation LP (32) est activée, USAGE POINTER et USAGE POINTER-32 sont synonymes. Lorsque l'option de compilation LP (64) est activée, les instructions suivantes s'appliquent:
  • Un élément de données POINTER-32 peut être défini sur une valeur d'un élément de données POINTER. Seul le mot de faible ordre de l'élément de données POINTER est utilisé dans ce cas. Il s'agit d'une erreur de programmation si le mot de poids fort de la donnée de pointeur 64 bits n'est pas nul.
  • Un élément de données POINTER-32 peut être comparé à un élément de données POINTER dans une condition de relation. La représentation du bit dans l'élément de données POINTER-32 est étendue à 64 bits si le mot de poids fort est égal à zéro avant la comparaison.
  • POINTER-32 éléments de données peuvent faire partie d'un groupe alphanumérique auquel il est fait référence dans une instruction MOVE ou une instruction d'entrée/sortie. Toutefois, si un élément de données de pointeur fait partie d'un groupe, il n'y a pas de conversion des valeurs lors de l'exécution de l'instruction.
  • Un élément de données POINTER-32 peut être le sujet ou l'objet d'une clause REDEFINES.
  • SYNCHRONIZED peut être utilisé avec USAGE IS POINTER-32 pour obtenir une utilisation efficace de l'élément de données de pointeur.
  • Une clause VALUE pour un élément de données POINTER-32 ne peut contenir que NULL ou NULLS.
  • Un élément de données POINTER-32 ne peut pas être une variable conditionnelle.
  • Un élément de données POINTER-32 n'appartient à aucune classe ou catégorie.
Le tableau suivant répertorie les clauses qui peuvent ou non être utilisées pour décrire les éléments de groupe ou élémentaires définis avec USAGE IS POINTER-32.
Tableau 1. Les clauses qui peuvent ou non être utilisées avec USAGE IS POINTER-32
Peut être utilisé avec USAGE IS POINTER-32 Ne peut pas être utilisé avec USAGE IS POINTER
Clause GLOBAL
Clause EXTERNAL
Clause OCCURS
Clause VOLATILE
Clause JUSTIFIÉE
clause PICTURE
clause BLANK WHEN ZERO

POINTER-32 éléments de données sont ignorés dans le traitement d'une expression CORRESPONDANT.

Un élément de données POINTER-32 peut être écrit dans un fichier, mais lors de la lecture suivante de l'enregistrement qui contient le pointeur, l'adresse contenue peut ne plus représenter un pointeur valide.