2014-02-09 5 views
2

Мне недавно пришлось столкнуться с этой проблемой, то есть как я могу передать 1, 2, 3, 9, 38919, 0 или любое случайное число аргументов функции или процедуры в Pascal? Я хочу сделать подпрограмму, которая принимает столько параметров, сколько я хочу передать, например writeln.
Pascal - Как передать переменное количество параметров в подпрограмму? (variadic function)

writeln('Hello, ', name, '.'); 
writeln('You were born on ', birthDate, ', and you are ', age, ' years old.'); 


Я искал в Интернете какой-то руководство или любой другой, но только родственные нити я нашел были theseones, который помог мне понять мою проблему немного больше, но я до сих пор не знаю, как сделайте это в Паскале.
Я также нашел this, но я не уверен, что я действительно понял, что он говорит. (и я не знаю, относится ли то, что относится к Free Pascal, к другим компиляторам)

Любые идеи? :/

ответ

3

В первую очередь, writeln - это языковая конструкция, а не функция. Вы не можете имитировать его для своих собственных функций. (вы можете перенаправить файл writeln, хотя, и FPC имеет writestr, который может писать в строку)

Синтаксис array of const более Delphi ориентирован. Open array тоже ориентирован на Delphi, но у Turbo Pascal была своя форма. Это только для одного типа.

Но поскольку классический паскаль не имеет возможности делать вариационные параметры, если вы этого хотите, вы не можете избежать использования расширений.

+0

Большое спасибо за ваш ответ. Я думаю, что для решения своей проблемы я буду использовать метод «массив const», потому что я думаю, что это самый близкий способ делать то, что я хочу. Спасибо за ссылки! – qreon

Смежные вопросы