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

deq*_*yra 4 pascal arguments parameter-passing 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.');
Run Code Online (Sandbox Code Playgroud)


我搜索了一些指导或任何网站,但唯一相关的线程我发现了这些 的人,这让我了解我的问题有点多,但我还是不知道如何在帕斯卡尔做到这一点。
我也发现了这个,但我不确定我是否真的理解它所说的。(我也不知道适用于 Free Pascal 的内容是否也适用于其他编译器)有

什么想法吗?:/

Mar*_*ort 6

首先,writeln 是一种语言结构,而不是一个函数。您无法为自己的功能模仿它。(不过,您可以重新路由 writeln 输出,而 FPC 具有可以将 writeln 写入字符串的writestr

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

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