В моей программе COBOL у меня есть следующее утверждение:
SET MYSELF (STATUS) TO -1.
Что делает это утверждение? Я не понимаю слов СЕБЯ и СТАТУС. Кажется, что он дает параметру состояния значение -1, я прав? Что значит САМ?
В моей программе COBOL у меня есть следующее утверждение:
SET MYSELF (STATUS) TO -1.
Что делает это утверждение? Я не понимаю слов СЕБЯ и СТАТУС. Кажется, что он дает параметру состояния значение -1, я прав? Что значит САМ?
MYSELF — это зарезервированное слово, которое позволяет элементу задачи, предоставленному компилятором, ссылаться на атрибуты своего собственного процесса. Таким образом, вы устанавливаете STATUS в своем собственном процессе на -1.
Справочное руководство по программированию COBOL ANSI-74 (ссылка в формате PDF)
Зарезервированное слово MYSELF — это предоставляемый компилятором элемент задачи, который позволяет программе получить доступ к собственным атрибутам задачи. Таким образом, на любой атрибут данной задачи в этой задаче можно ссылаться как на АТРИБУТ имя-атрибута МЕНЯ.
Например, ИЗМЕНИТЕ АТРИБУТ, ЗАЯВЛЕННЫЙ ПРИОРИТЕТОМ СЕБЯ НА 90. ИЗМЕНИТЕ АТРИБУТ, ЗАЯВЛЕННЫЙ ПРИОРИТЕТОМ АТРИБУТА ПАРТНЕРА СЕБЯ, НА 65.
Второй пример иллюстрирует выполнение другой задачи вместе с выполняемой вами задачей. Атрибут PARTNER относится к другой задаче, и пример изменяет DECLAREDPRIORITY другой задачи.
В «простой» программе на языке COBOL это утверждение недействительно. MYSELF
будет записью ниже OCCURS
("ячейка таблицы"), а STATUS
будет используемым индексом (= числовая переменная).
Но поскольку оператор SET
может только ("стандартный COBOL") корректировать переменные типа POINTER
или INDEX
, и оба не могут быть установлены отрицательными, этот оператор обычно недействителен.
В некоторых реализациях вы можете использовать SET
для настройки любой числовой переменной (где -1 будет допустимым, если целью является переменная со знаком), но, как указал @JerryTheGreek, это выглядит как NO COBOL но «Идентификаторы атрибутов задач (расширение ANSI X3.23-1974 COBOL)».