Pascal - 如何将可变数量的参数传递给子程序? (可变函数)

时间:2014-02-09 02:21:04

标签: arguments parameter-passing pascal variadic-functions

我最近不得不面对这个问题,也就是说,如何将1个,2个,3个,9个,38919个,0个或任意随机数的参数传递给Pascal中的函数或过程?我想创建一个子程序,接受我想传递的参数,就像writeln一样。

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


我在网上搜索了一些指南或其他什么,但我找到的唯一相关主题是these ones,这有助于我更多地理解我的问题,但我仍然不知道如何做到这一点在帕斯卡尔。
我也找到this,但我不确定我是否真的理解它的内容。 (我也不知道Free Pascal适用于其他编译器是否也适用于其他编译器)
有任何想法吗 ? :/

1 个答案:

答案 0 :(得分:3)

首先,writeln是一种语言结构,而不是一种功能。你无法模仿自己的功能。 (你可以重新路由writeln输出,并且FPC有writestr可以写入字符串)

array of const语法更面​​向Delphi。 Open array也是面向Delphi的,但Turbo Pascal有自己的形式。它只适用于一种类型。

但是由于经典的pascal无法使用可变参数,如果你想要这个,你就不能避免使用扩展。