Die übergabe von Parametern dynamisch zu variadischen Funktionen

Ich Frage mich, ob es irgendeinen Weg, um Parameter dynamisch zu variadischen Funktionen. d.h. Wenn ich eine Funktion

int some_function (int a, int b, ...){/*blah*/}

und ich bin der Annahme einer Reihe von Werten vom Benutzer, ich will Weg dar, diese Werte in der Funktion:

some_function (a,b, val1,val2,...,valn)

Möchte ich nicht schreiben, verschiedene Versionen von all diese Funktionen, aber ich vermute, es gibt keine andere option?

  • wenn alle Werte vom selben Typ (wie deine Frage scheint zu implizieren - korrigieren Sie mich, wenn ich falsch Liege), würde ich vorschlagen, nicht zu verwenden, eine Variable Funktion, und übergeben Sie ein array statt; siehe hier für einige makro-Magie pretty it up, wenn Sie wollen, zu passieren, in eine Feste Anzahl von Argumenten: stackoverflow.com/questions/1375474/variable-arity-in-c/...
  • Nein, Sie sind von verschiedenen Arten.
  • der array-Ansatz kann weiterhin funktionieren, wenn Sie wickeln Sie Ihre Werte in einer Gewerkschaft oder übergeben in einem array von void * um die Werte statt der Werte selbst, aber es werden weniger elegant
  • Übergeben Sie ein array von void* klingt wie die ideale Lösung eigentlich, ich glaube nicht, dass das funktionieren würde.
InformationsquelleAutor tommobh | 2009-11-12
Schreibe einen Kommentar