Einer va_list ein Element hinzufügen?



  • Hi Leute,

    ist es möglich, einer va_list vorne ein weiteres Element hinzuzufügen?



  • Nein, kannst du nicht - die va_list operiert auf der variablen Argumentliste einer Funktion - damit hast du nur die Werte, die du der Funktion als Parameter übergeben hast.



  • Hm... Im VisualStudio 2005 ist va_list als einfacher char* definiert. Kann man sich darauf verlassen, dass das überall so ist? Weil dann ist es einfach sich ne eigene va_list zu basteln (bereits getestet: tut).



  • Nein, darauf kannst du dich nicht verlassen. Wie der Umgang mit variablen Argumentlisten geregelt wird, hängt vom verwendeten Compiler ab - da solltest du dich also auf die entsprechend angepassten Makros (va_start, va_next, va_end) verlassen, die wissen was sie tun.

    PS: Was genau hast du eigentlich vor?



  • ok, schade.

    Ach, was ich vor hatte, war eh nicht so sehr schön 😉

    Ausgang der Frage war folgendes Szenario:
    Eine WSDL-Datei, die eine SOAP-Schnittstelle definiert. Fast alle Funktionen erwarten den gleichen ersten Parameter. Ich habe das ganze in zwei Ebenen aufgeteilt. Einen generischen SOAP-"Invoker", dessen Hauptfunktion u.a. die Parametertypen und die Parameter selbst nimmt. Die Parameter werden als va_list oder als variable Parameterliste uebergeben. Jetzt wollte ich in der oberen Ebene, die auf meine SOAP-Schnittstelle zugeschnitten ist nochmals eine pseudo-generische Funktion erstellen, der man die Parameter uebergibt, bis eben auf den ersten, der immer gleich ist. Und diese Funktion sollte der va_list diesen ersten Parameter vorne hinzufuegen.


Anmelden zum Antworten