main.c
中的我致电function(2, "string", "yes")
,其中
void function(UINT16 id, const char *ptr_argDescr, ...)
{
va_start(argList, ptr_argDescr);
va_arg(argList, ? );
//and how to copy in array result
在function
我希望得到yes
,然后将其复制到名为result
的数组中。我应该如何调用va_arg?请不要建议vsprintf。我想知道如何以上述方式做到这一点
答案 0 :(得分:1)
“是”的类型为public interface MyInterface<T> where T: MyAbstractClass {
T myInterfaceMethod(T blah);
}
public MyImplementation : MyInterface<MySubClass> {
MySubClass myInterfaeMethod(MySubClass blah){
...
}
}
,这是您应该使用的类型:
char*
字符串文字是只读的,所以如果你打算只传递它们,或者如果你不打算修改指针所指向的数组,你可以改为使用const char *,这样你就不会修改他们是偶然的。
然后获取字符串char* literal = va_arg(argList, char* );
的长度,为副本literal
分配存储空间,并复制字符串。