Q: Это правда?
A: Нет, это не так.
ADD
работает для любого поля цифра c, независимо от того, где оно находится сохранено.
Обратите внимание, что данные в FILE SECTION
гарантированно будут доступны только после успешного OPEN
(как вы упомянули GnuCOBOL: этот всегда обеспечивает хранилище). У него нет гарантированного значения, поэтому вы, вероятно, захотите INITIALIZE
данных.
Образец образца COBOL, который показывает оба и может быть настроен и выполнен :
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
input-output section.
file-control.
select test-file
assign to 'test-file'
organization is line sequential.
data division.
file section.
fd test-file.
01 num-var pic 9 value 0.
working-storage section.
01 num2-var pic 9 value 0.
PROCEDURE DIVISION.
ADD 1 TO num-var num2-var
DISPLAY 'Hello, num ' num2-var ' and file ' num-var.
INITIALIZE num-var num2-var
ADD 1 TO num-var num2-var
DISPLAY 'Hello, num ' num2-var ' and file ' num-var.
ADD num2-var to num-var
ADD num2-var to num-var
DISPLAY 'Hello, num ' num2-var ' and file ' num-var.
ADD num-var to num-var
DISPLAY 'Hello, num ' num2-var ' and file ' num-var.
STOP RUN.
Осторожно: это справочный формат фиксированной формы, не обязательно переносимый, пропущенный OPEN
может означать, что он прерывается - и это не очень хороший стиль - но продемонстрировать проблему.