IBM Extension

POINTER Phrase

A data item defined with the USAGE IS POINTER clause is a pointer data item.

A pointer data item is a 16-byte elementary item that can be used to accomplish base addressing. Pointer data items can be compared for equality, or moved to other pointer items.

A pointer data item may only be used in:

The USAGE IS POINTER clause may be written at any level except 66 or 88.

If a group item is described with the USAGE IS POINTER clause, the elementary items within the group are pointer data items. The group itself, however, is not a pointer data item and cannot be used in the syntax where a pointer data item is allowed.

Pointer data items can be part of a group that is referred to in a MOVE statement or an I/O statement. If, however, a pointer data item is part of a group, there is no conversion of pointer values to another internal representation when the statement runs.

A pointer data item can be the subject or object of a REDEFINES clause.

A VALUE clause for a pointer data item can contain NULL or NULLS only.

A pointer data item does not belong to a class or category, and it cannot be used as a conditional variable.

The JUSTIFIED, PICTURE, SIGN, TYPE, BLANK WHEN ZERO, and FORMAT clauses cannot be used to describe group or elementary items defined with the USAGE IS POINTER clause.

Pointer data items are ignored in CORRESPONDING operations.

A pointer data item can be written to a file, but if you later read the record containing the pointer data item, the item will no longer represent a valid address.

USAGE IS POINTER is implicitly specified for the ADDRESS OF special register.

You cannot treat ILE COBOL pointer data items as ordinary numbers.

Related Information:
End of IBM Extension