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 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.
| 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.