象征常量

图式常量 是用于命名和引用特定常量值的保留字。 本节中列出了象征常量的保留字及其含义。

零,零,零
表示数字值零 (0)出现的一个或多个 字母数字 字符零, 或布尔值 B "0" , 取决于上下文。

当在需要字母数字字符的上下文中使用象征常量 ZERO , ZEROS 或 ZEROES 时,将使用字母数字字符 0。 当上下文需要本地字符零时,将使用本地字符零 (值 NX'3000 ')。 无法确定上下文时,将使用字母数字字符零。

SPACESPACES
表示一个或多个空格。 当在需要字母数字字符的上下文中使用时,会将 SPACE 视为字母数字文字,当在需要 DBCS 字符的上下文中使用时,会将 SPACE 视为 DBCS 文字,当在需要国家字符的上下文中使用时,会将 SPACE 视为国家文字。

HIGH-VALUEHIGH-VALUES
表示在使用的整理顺序中具有最高序数位置的字符的一次或多次出现。

HIGH-VALUE 在需要字母数字字符的上下文中被视为字母数字文字。 对于具有 EBCDIC 整理顺序的字母数字数据,值为 X'FF '。 对于其他字母数字数据,该值取决于语言环境指示的整理 序列。 有关区域设置的更多信息,请参阅区域设置注意事项

HIGH-当在需要本地文字的上下文中使用时,将 HIGH-VALUE 视为本地文字。 该值为本地字符 NX'FFFF '。 仅当 NCOLLSEQ (BIN) 编译器选项生效时,才能在需要本地文字的上下文中使用 HIGH-VALUE。

无法确定上下文时,将采用字母数字上下文并使用值 X'FF '。

用法说明: 不应以导致在一个数据表示与另一个数据表示之间进行转换的方式使用 HIGH-VALUE (或从 HIGH-VALUE 指定的值)。 X'FF '不代表有效的 EBCDIC 或 ASCII 字符, NX'FFFF' 不代表有效的国家字符。 将字母数字或国家 HIGH-VALUE 表示转换为另一个表示将导致替换字符。 例如,将 X'FF '转换为 UTF-16 将提供替换字符,而不是 NX'FFFF'。

LOW-VALUELOW-VALUES
表示在使用的整理顺序中具有最低顺序位置的字符的一次或多次出现。

LOW-VALUE 在需要字母数字字符的上下文中被视为字母数字文字。 对于具有 EBCDIC 整理顺序的字母数字数据,值为 X'00 '。 对于其他字母数字数据,该值取决于语言环境指示的整理 序列。 有关区域设置的更多信息,请参阅区域设置注意事项

当在需要本地文字的上下文中使用时, LOW-VALUE 将被视为本地文字。 值为国家字符 NX'0000 '。 仅当 NCOLLSEQ (BIN) 编译器选项生效时,才能在需要本地文字的上下文中使用 LOW-VALUE。

无法确定上下文时,将采用字母数字上下文并使用值 X'00 '。

QUOTEQUOTE
表示出现一次或多次:
  • 引号字符 (") (如果 QUOTE 编译器选项生效)
  • 撇号字符 (') (如果 APOST 编译器选项有效)

QUOTE 或 QUOTE 在需要字母数字字符的上下文中使用时表示字母数字字符,在需要国家字符的上下文中使用时表示国家字符。 引号的本地字符值为 NX'2200 '。 撇号的本地字符值为 NX'2700 '

不能使用 QUOTE 和 QUOTE 来代替引号或撇号来括起字母数字文字。

所有 文字
文字 可以是字母数字文字, DBCS 文字,本地文字或除 ALL 文字以外的象征常量。

文字 不是象征常量时, ALL 文字 表示组成文字的字符串的一个或多个出现。

文字 是象征常量时,单词 ALL 没有意义,仅用于可读性。

不得将象征常量 ALL 字面值 与 CALL ,检查, STOP 或 STRING 语句配合使用。

符号字符
表示在 SPECIAL-NAMES 段的符号字符子句中指定为 符号字符 的值的一个或多个字符。

符号字符 始终表示字母数字字符; 仅当定义了字母数字到本地字符的隐式转换时,才能在需要本地字符的上下文中使用该字符。 (例如,可以在 MOVE 语句中使用它,其中接收项是类 national ,因为隐式转换是在发送项为字母数字且接收项为 national 时定义的。)

如果多字节代码页由编译时语言环境设置指示,那么不能指定符号字符子句。 有关区域设置的更多信息,请参阅区域设置注意事项

NULLNULLS
表示用于指示使用 USAGE POINTER , USAGE PROCEDURE-POINTER , USAGE FUNCTION-POINTER 或 ADDRESS OF 专用寄存器定义的数据项不包含有效地址的值。 仅当在语法格式中显式允许时,才能使用 NULL。 NULL 的值为零。

可以互换使用 NULL , ZERO , SPACE , HIGH-VALUE , LOW-VALUE 和 QUOTE 的单数和复数形式。 例如,如果 DATA-NAME-1 是 5 个字符的数据项,那么以下每个语句都会将 5 个空格移至 DATA-NAME-1:


MOVE SPACE       TO  DATA-NAME-1
MOVE SPACES      TO  DATA-NAME-1
MOVE ALL SPACES  TO  DATA-NAME-1

当 COBOL 的规则允许对一个具象常量名称进行任何一种拼写时,可以指定该具象常量名称的任何替代拼写。

您可以在语法图中出现 文字 的位置使用象征常量,但明确禁止的位置除外。 当数字文字出现在语法图中时,只能使用象征常量 ZERO (或 ZEROS 或 ZEROES)。 不允许使用象征常量作为函数自变量,除非在算术表达式中,其中表达式是函数 的自变量,其中表达式是函数的自变量。 象征常量 ZERO 可用作布尔文字

象征常量的长度取决于其使用的上下文。 下列规则适用:

  • 当在 VALUE 子句中指定象征常量或与数据项关联时 (例如,移动到其他项或与其他项进行比较时) ,象征常量字符串的长度等于 1 或关联数据项中的字符位置数 (以较大者为准)。
  • 当除 ALL 字面值以外的象征常量未与其他数据项 (例如,在 CALL , STOP , STRING 或 UNSTRING 语句中) 相关联时,字符串的长度为一个字符。