【问题标题】:Pascal - How to pass variable number of parameters to a subprogram ? (variadic function)Pascal - 如何将可变数量的参数传递给子程序? (可变函数)
【发布时间】:2014-03-06 10:34:02
【问题描述】:

我最近不得不面对这个问题,即如何将 1、2、3、9、38919、0 或任何随机数量的参数传递给 Pascal 中的函数或过程?我想制作一个接受尽可能多的参数的子程序,比如 writeln。

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


我在网上搜索了一些指南或其他内容,但我发现的唯一相关线程是theseones,这有助于我更多地理解我的问题,但我仍然不知道如何在 Pascal 中做到这一点。
我还找到了this,但我不确定我是否真的理解它所说的内容。 (我也不知道适用于 Free Pascal 的内容是否也适用于其他编译器)

有任何想法吗 ? :/

【问题讨论】:

    标签: arguments parameter-passing pascal variadic-functions


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢您的回答,我想我会使用类似“const 数组”的方法来解决我的问题,因为我认为这是做我想做的最接近的方法。感谢您的链接!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 2015-09-23
    • 1970-01-01
    • 2014-10-20
    • 2023-01-21
    • 1970-01-01
    • 2017-09-28
    相关资源
    最近更新 更多