LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Я бы советовал в психологию не углубляться. Если ты такой умный, то как называется передача VAR параметров? Вот цитата из определения языка. Я думаю, что это передача по ссылке, но 100% уверенности нет.

Формальные параметры суть идентификаторы, объявленные в списке формальных параметров процедуры. Они соответствуют фактическим параметрам, указанным в вызове процедуры. Соответствие между формальными и фактическими параметрами устанавливается при вызове процедуры. Есть два вида параметров: параметры-значения и параметры-переменные, последние отмечены в списке формальных параметров одним из описателей VAR, IN или OUT. Параметры-значения представляют собой локальные переменные, которым в качестве начального значения присваивается значение соответствующего фактического параметра. Параметры-переменные соответствуют факти­ческим параметрам, являющимся переменным, и они представляют эти пере­менные. Параметры-переменные могут использоваться только для ввода данных (IN), только для вывода данных (OUT) или для ввода и вывода (VAR). Описатель IN можно использовать только для параметров, являющихся массивами или записями. Внутри процедуры IN-параметры доступны только для чтения. Как и локальные переменные, OUT-параметры указательных или процедурных типов инициализируются в NIL.

Но из этого видно, что сама по себе функция может обрабатывать и VAR параметры, и не VAR. Кроме того, в присваивании a и b могут быть указателями на совместимые строковые типы и я пока не знаю, трогает ли функция CheckBuffering только параметры строки (на самом деле строка - это array of char) или указатели на них тоже. Кроме того, в отличие от Си, если формальный параметр - указатель, то при каждом использовании его не нужно разыменовывать, и это ещё одна «магия компилятора». Ты всё ещё уверен, что это всё равно назвается «передача по значению»?

Вносить конкретные типы я считаю, на данном этапе надо, поскольку перевод делается с целью разобраться, что к чему. В этом случае некая избыточность вполне приемлема. Потом можно будет уточнить, переименовать.

Исправление den73, :

Я бы советовал в психологию не углубляться. Если ты такой умный, то как называется передача VAR параметров? Вот цитата из определения языка. Я думаю, что это передача по ссылке, но 100% уверенности нет.

Формальные параметры суть идентификаторы, объявленные в списке формальных параметров процедуры. Они соответствуют фактическим параметрам, указанным в вызове процедуры. Соответствие между формальными и фактическими параметрами устанавливается при вызове процедуры. Есть два вида параметров: параметры-значения и параметры-переменные, последние отмечены в списке формальных параметров одним из описателей VAR, IN или OUT. Параметры-значения представляют собой локальные переменные, которым в качестве начального значения присваивается значение соответствующего фактического параметра. Параметры-переменные соответствуют факти­ческим параметрам, являющимся переменным, и они представляют эти пере­менные. Параметры-переменные могут использоваться только для ввода данных (IN), только для вывода данных (OUT) или для ввода и вывода (VAR). Описатель IN можно использовать только для параметров, являющихся массивами или записями. Внутри процедуры IN-параметры доступны только для чтения. Как и локальные переменные, OUT-параметры указательных или процедурных типов инициализируются в NIL.

Но из этого видно, что сама по себе функция может обрабатывать и VAR параметры, и не VAR. Кроме того, в присваивании a и b могут быть указателями на совместимые строковые типы и я пока не знаю, трогает ли функция CheckBuffering только параметры строки (на самом деле строка - это array of char) или указатели на них тоже. Ты всё ещё уверен, что это всё равно назвается «передача по значению»?

Вносить конкретные типы я считаю, на данном этапе надо, поскольку перевод делается с целью разобраться, что к чему. В этом случае некая избыточность вполне приемлема. Потом можно будет уточнить, переименовать.

Исправление den73, :

Я бы советовал в психологию не углубляться. Если ты такой умный, то как называется передача VAR параметров? Вот цитата из определения языка. Я думаю, что это передача по ссылке, но 100% уверенности нет.

Формальные параметры суть идентификаторы, объявленные в списке формальных параметров процедуры. Они соответствуют фактическим параметрам, указанным в вызове процедуры. Соответствие между формальными и фактическими параметрами устанавливается при вызове процедуры. Есть два вида параметров: параметры-значения и параметры-переменные, последние отмечены в списке формальных параметров одним из описателей VAR, IN или OUT. Параметры-значения представляют собой локальные переменные, которым в качестве начального значения присваивается значение соответствующего фактического параметра. Параметры-переменные соответствуют факти­ческим параметрам, являющимся переменным, и они представляют эти пере­менные. Параметры-переменные могут использоваться только для ввода данных (IN), только для вывода данных (OUT) или для ввода и вывода (VAR). Описатель IN можно использовать только для параметров, являющихся массивами или записями. Внутри процедуры IN-параметры доступны только для чтения. Как и локальные переменные, OUT-параметры указательных или процедурных типов инициализируются в NIL.

Но из этого видно, что сама по себе функция может обрабатывать и VAR параметры, и не VAR. Кроме того, в присваивании a и b могут быть указателями на совместимые строковые типы и я пока не знаю, трогает ли функция CheckBuffering только параметры строки (на самом деле строка - это array of char) или указатели на них тоже. Ты всё ещё уверен, что это всё равно назвается «передача по значению»?

Вносить конкретные типы я считаю, на данном этапе надо, поскольку перевод делается с целью разобраться, что к чему. В этом случае некая избыточность вполне приемлема.

Исходная версия den73, :

Я бы советовал в психологию не углубляться. Если ты такой умный, то как называется передача VAR параметров? Вот цитата из определения языка. Я думаю, что это передача по ссылке, но 100% уверенности нет.

Формальные параметры суть идентификаторы, объявленные в списке формальных параметров процедуры. Они соответствуют фактическим параметрам, указанным в вызове процедуры. Соответствие между формальными и фактическими параметрами устанавливается при вызове процедуры. Есть два вида параметров: параметры-значения и параметры-переменные, последние отмечены в списке формальных параметров одним из описателей VAR, IN или OUT. Параметры-значения представляют собой локальные переменные, которым в качестве начального значения присваивается значение соответствующего фактического параметра. Параметры-переменные соответствуют факти­ческим параметрам, являющимся переменным, и они представляют эти пере­менные. Параметры-переменные могут использоваться только для ввода данных (IN), только для вывода данных (OUT) или для ввода и вывода (VAR). Описатель IN можно использовать только для параметров, являющихся массивами или записями. Внутри процедуры IN-параметры доступны только для чтения. Как и локальные переменные, OUT-параметры указательных или процедурных типов инициализируются в NIL.

Но из этого видно, что сама по себе функция может обрабатывать и VAR параметры, и не VAR. Кроме того, в присваивании a и b могут быть указателями на совместимые строковые типы и я пока не знаю, что при этом будет. Ты всё ещё уверен, что это всё равно назвается «передача по значению»?