Cтраница 2
Если данные передаются вызываемой программе через список аргументов, то для списка в вызывающей программе строится область аргументов. В нее заносятся адреса памяти, в которой размещаются значения фактических аргументов, передаваемых в вызываемую программу для ее выполнения. [16]
Упрощает нормальный возврат из функции, переменный список аргументов которой был указан в va start, расширением которого был инициализирован объект va list ар. Если нет соответствующего вызова макроса va start, или перед возвратом не вызван макрос va end, то поведение не определено. [17]
Младший байт первого слова таблицы ( списка аргументов) обычно содержит номер канала, а старший - код функции. ARGN), то макрокоманда не изменяет соответствующих им записей в списке аргументов. [18]
![]() |
Использование стека для хранения аргументов подпрограмм. [19] |
На передаче адреса только первого элемента списка аргументов основан еще один метод. Если этот адрес поместить в один из регистров общего назначения, то отпадает необходимость размещать список аргументов в той же области памяти, где расположен вызов подпрограммы, и подпрограмма может работать с данными, расположенными произвольно. В таком случае операции выполняются над данными, которые расположены в стеке или же на которые в стеке имеются ссылки. [20]
Тип и длина каждого значения из списка аргументов задается соответственно двумя байтами символьной переменной ( символьного массива), указанной после F. При этом К - й переменной ( метке массива) из списка аргументов соответствуют байты символьной переменной ( массива) с порядковыми номерами ( 2К - 1) и 2К, если нет пропуска поля; символьный массив в этом случае рассматривается без учета деления на элементы. [21]
РАС) равен 1, нужно дополнить список аргументов и применить примитивную функцию к этим аргументам. [22]
Здесь 0 является просто значением-пустышкой, чтобы список аргументов operator, использующийся для постинкремента, был отличим от списка аргументов operator для преинкремента. [23]
Каждая переменная ( метка массива) из списка аргументов должна иметь свое описание ( два байта) в символьной переменной ( массиве); при этом описание для метки массива определяет поле значения для каждого элемента массива, а не для всего массива в целом. [24]
В этих формах обращения к процедуре элементы списка аргументов иногда называют фактическими параметрами, чтобы их отличить от формальных параметров описания процедуры. [25]
В момент обращения к процедуре значения из списка аргументов присваиваются соответствующим формальным параметрам в описании процедуры, и с этими значениями она выполняется. При вызове процедуры управление передается из программы в точку входа в процедуру, а при выходе из нее осуществляется возврат в точку вызова. Процедуры не могут быть рекурсивными. В языке ПЛ / М допускается возможность обращения также и к процедурам, написанным на языке ассемблера. [26]
Оператор ENTRY состоит из наименования входа и списка фиктивных аргументов, причем если он используется в подпрограмме-функции, то наименование согласуется по типу с наименованием самой функции. [27]
Реализация оператора D PACK заканчивается, когда исчерпан список аргументов, при этом в цифровую переменную заносится число байтов буфера, использованных при упаковке. [28]
Звездочки при печати будут заменены соответствующими значениями из списка аргументов. Значение аргумента для ширины поля может быть отрицательным, но для точности представления оно должно быть только положительным. [29]
Если данных в символьном аргументе недостаточно для всего списка аргументов, то оставшиеся элементы из списка аргументов игнорируются. [30]