Ich suche dies in C/C++ zu tun.Wie umschließt man eine Funktion mit Argumenten variabler Länge?
Ich stieß auf Variable Length Arguments, aber das schlägt eine Lösung mit Python & C unter Verwendung libffi vor.
Nun, wenn ich wie unter printf
Funktion mit myprintf
Was ich tue, ist wickeln will:
void myprintf(char* fmt, ...)
{
va_list args;
va_start(args,fmt);
printf(fmt,args);
va_end(args);
}
int _tmain(int argc, _TCHAR* argv[])
{
int a = 9;
int b = 10;
char v = 'C';
myprintf("This is a number: %d and \nthis is a character: %c and \n another number: %d\n",a, v, b);
return 0;
}
Aber die Ergebnisse nicht wie erwartet!
This is a number: 1244780 and
this is a character: h and
another number: 29953463
Jeder Punkt, wo ich vermisse ??
Die Antwort auf diese Frage ist _very_ anders jetzt, dass C++ 11 aus ist. –
@MooingDuck In der Tat habe ich eine 'Variadic Templates' Antwort hinzugefügt, denkst du, dass es eine schönere Art in C++ 11 gibt? –
@MooingDuck Eine Vararg-Funktion ist keine variable Template-Funktion. Sie unterscheiden sich in Art und Art. – rubenvb