The PROCEDURE-POINTER phrase defines an item as a procedure-pointer data item.
A procedure-pointer data item is a 4-byte elementary item.
A procedure-pointer can contain one of the following addresses or can contain NULL:
A procedure-pointer data item can be used only:
Procedure-pointer data items can be compared for equality or moved to other procedure-pointer data items.
Procedure-pointer data items can be part of a group that is referred to in a MOVE statement or an input/output statement. However, there is no conversion of values when the statement is executed. If a procedure-pointer data item is written to a data set, subsequent reading of the record that contains the procedure-pointer can result in an invalid value in the procedure-pointer.
A procedure-pointer data item can be the subject or object of a REDEFINES clause.
SYNCHRONIZED can be used with USAGE IS PROCEDURE-POINTER to obtain efficient alignment of the procedure-pointer data item.
The GLOBAL, EXTERNAL, and OCCURS clause can be used with USAGE IS PROCEDURE-POINTER.
A VALUE clause for a procedure-pointer data item can contain only NULL or NULLS.
The DATE FORMAT, JUSTIFIED, PICTURE, and BLANK WHEN ZERO clauses cannot be used to describe group or elementary items defined with the USAGE IS PROCEDURE-POINTER clause.
A procedure-pointer data item cannot be a conditional variable.
A procedure-pointer data item does not belong to any class or category.
Procedure-pointer data items are ignored in CORRESPONDING operations.