如何将D数组转换为C variadic?

bio*_*ics 2 d variadic phobos

我想在D形式中转换一个数组:

string[] arrayStr = [ "hi, "is fun", "use D programming" ];
Run Code Online (Sandbox Code Playgroud)

我有一个C函数,它采用C变量:

void c_func( const char* format, ... );
Run Code Online (Sandbox Code Playgroud)

我可以:

foreach(str; arrayStr)
    func( str );
Run Code Online (Sandbox Code Playgroud)

但这似乎是攻击C变量,我宁愿直接转换为C vararg,

我怎样才能做到这一点?

谢谢

Fee*_*ure 5

AD数组是一个由长度和指针组成的结构.例如,您可以通过将D格式化为"%.*s"将D字符串传递给printf.

因此,如果将数组传递给C函数的variadic参数,它将在其varargs中找到long int(length)和char []*(ptr).