我想在D格式中转换数组:
string[] arrayStr = [ "hi, "is fun", "use D programming" ];
我有一个C函数,它采用C变量:
void c_func( const char* format, ... );
我能做到:
foreach(str; arrayStr)
func( str );
但这似乎是攻击C变量,我宁愿直接转换为C vararg,
我该怎么做?
感谢
答案 0 :(得分:5)
D数组是由长度和指针组成的结构。例如,您可以将D字符串传递给printf,方法是将其格式化为“%。* s”。
因此,如果将数组传递给C函数的variadic参数,它将在其varargs中找到long int(length)和char [] *(ptr)。