Ada中的变异函数(C - Ada绑定)?

Aka*_*kay 6 c ada variadic-functions variadic-templates

我正在开发一个使用C - Ada语言绑定的项目.C中的函数将调用Ada端的函数.我想在Ada中创建一个可变函数,它可以接收从C函数发送的可变数量的参数.我还想同时发送不同类型的args,如int,char,enums等.是否有可能拥有这种机制?

小智 5

即将推出的 Ada 标准 Ada 202x 计划为调用 C 可变参数函数提供支持。

然后你就可以写了;

package C renames Interfaces.C;

procedure Printf (Format : in C.char_array)
  with Import => True, Convention => C_Variadic_1, External_Name => "printf";
Run Code Online (Sandbox Code Playgroud)


Jim*_*ers 3

您无法在 Ada 中创建可变参数函数。您可以通过多种方式模拟可变参数函数。

  1. Ada 允许您指定函数和过程的默认值。如果您想使用默认值,则不必总是指定默认参数的值。
  2. 您可以将一个或多个参数定义为变量记录。