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

标签 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 ,这帮助我更了解我的问题,但我仍然不知道如何在 Pascal 中做到这一点。
我还找到了 this ,但我不确定我是否真的理解它所说的。 (我也不知道适用于 Free Pascal 的内容是否也适用于其他编译器)

有任何想法吗 ? :/

最佳答案

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

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

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

关于arguments - Pascal - 如何将可变数量的参数传递给子程序? (可变函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654438/

相关文章:

bash - 如何编写带有可选输入参数的 bash 脚本?

python - 将字符串作为元组作为参数传递 python

javascript - MVC 4 Ajax异步文件上传始终将空值传递给 Controller

c# - .NET 中未显示 Delphi COM 对象

没有连字符的命令行参数

Java 参数无法识别

windows-phone-7 - WP7:将参数传递到新页面?

c++ - 如何从外部将值传递给结构函数?

c - 将 C union 翻译成 Pascal 变体记录

pascal - 为什么我们需要德尔福棱镜