POINTER 短语

使用 USAGE IS POINTER 定义的数据项是 指针数据项 指针数据项 是 4 字节的基本项或 8 字节的基本项,具体取决于 ADDR(32)ADDR(64) 编译器选项是否生效。

您可以使用指针数据项来完成有限的基本寻址。 指针数据项可以进行等式比较,也可以移动到其他指针项。

只能使用指针数据项:

  • 在 SET 语句中 (仅格式 5 和格式 8 )
  • 在关系条件中
  • 在 CALL 语句, ENTRY 语句或 PROCEDURE DIVISION 头的 USING 短语中

指针数据项可以是 MOVE 语句或输入/输出语句中引用的字母数字组的一部分。 但是,如果指针数据项是组的一部分,那么执行语句时不会转换值。

指针数据项可以是 REDEFINES 子句的主题或对象。

SYNCHRONIZED 可与 USAGE IS POINTER 一起使用,以获得指针数据项的高效使用。

指针数据项的 VALUE 子句只能包含 NULL 或 NULLS。

指针数据项不能是条件变量。

指针数据项不属于任何类或类别。

下表列出了可用于或不能用于描述使用 USAGE IS POINTER 定义的组项或基本项的子句。
表 1. 可以或不能与 USAGE IS POINTER 一起使用的子句
可与 USAGE IS POINTER 配合使用 不能与 USAGE IS POINTER 配合使用
GLOBAL clause
EXTERNAL clause
OCCURS clause

LIKE 子句
DATE FORMAT 子句
对齐子句
PICTURE 子句
BLANK WHEN ZERO 子句
TYPE 子句
FORMAT 子句

在处理相对应的短语时,将忽略指针数据项。

可以将指针数据项写入 文件,但在后续读取包含该指针的记录时,包含的地址可能不再表示有效的指针。

对 ADDRESS OF 专用寄存器隐式指定了 USAGE IS POINTER。 有关更多信息,请参阅 COBOL for Linux® on x86 Programming Guide中的 Using tables (array) and pointers