COBOL - 了解 SET MYSELF
COBOL - Understanding SET MYSELF
在我的 COBOL 程序中,我有以下语句:
SET MYSELF (STATUS) TO -1.
这条语句有什么作用?我不明白 MYSELF 和 STATUS 这两个词。似乎它为状态参数提供了值 -1,对吗? MYSELF 是什么意思?
MYSELF 是一个保留字,它使编译器提供的任务项能够引用其自身进程的属性。因此,您将自己进程中的 STATUS 设置为 -1。
COBOL ANSI-74 Programming Reference Manual (PDF Link)
The reserved word MYSELF is a compiler-supplied task item that
enables a program to access its own task attributes. Thus, any
attribute of a given task can be referenced within that task as
ATTRIBUTE attribute-name OF MYSELF.
For example, CHANGE ATTRIBUTE DECLAREDPRIORITY OF MYSELF TO 90.
CHANGE ATTRIBUTE DECLAREDPRIORITY OF ATTRIBUTE PARTNER OF MYSELF TO 65.
The second example illustrates another task running with a task that you are running.
The PARTNER attribute refers to the other task and the example changes the
DECLAREDPRIORITY of the other task.
在 "plain" COBOL 程序中,此语句无效。 MYSELF
将是 OCCURS
("table cell")下方的条目,STATUS
将是要使用的索引(= 数字变量)。
但是由于SET
语句只能("standard COBOL")调整POINTER
或INDEX
类型的变量,并且两者都不能设置为负数这个语句通常会无效。
有一些实现可以使用 SET
来调整任何数字变量(如果目标是带符号的变量,-1 将有效),但正如@JerryTheGreek 指出的那样,它看起来是没有 COBOL 但 "Task-Attribute Identifiers (Extension to ANSI X3.23-1974 COBOL)".
在我的 COBOL 程序中,我有以下语句:
SET MYSELF (STATUS) TO -1.
这条语句有什么作用?我不明白 MYSELF 和 STATUS 这两个词。似乎它为状态参数提供了值 -1,对吗? MYSELF 是什么意思?
MYSELF 是一个保留字,它使编译器提供的任务项能够引用其自身进程的属性。因此,您将自己进程中的 STATUS 设置为 -1。
COBOL ANSI-74 Programming Reference Manual (PDF Link)
The reserved word MYSELF is a compiler-supplied task item that enables a program to access its own task attributes. Thus, any attribute of a given task can be referenced within that task as ATTRIBUTE attribute-name OF MYSELF.
For example, CHANGE ATTRIBUTE DECLAREDPRIORITY OF MYSELF TO 90. CHANGE ATTRIBUTE DECLAREDPRIORITY OF ATTRIBUTE PARTNER OF MYSELF TO 65.
The second example illustrates another task running with a task that you are running. The PARTNER attribute refers to the other task and the example changes the DECLAREDPRIORITY of the other task.
在 "plain" COBOL 程序中,此语句无效。 MYSELF
将是 OCCURS
("table cell")下方的条目,STATUS
将是要使用的索引(= 数字变量)。
但是由于SET
语句只能("standard COBOL")调整POINTER
或INDEX
类型的变量,并且两者都不能设置为负数这个语句通常会无效。
有一些实现可以使用 SET
来调整任何数字变量(如果目标是带符号的变量,-1 将有效),但正如@JerryTheGreek 指出的那样,它看起来是没有 COBOL 但 "Task-Attribute Identifiers (Extension to ANSI X3.23-1974 COBOL)".