Ellipse einfach weiterübergeben und nicht auswerten. Geht das überhaupt?



  • Hi,

    ich habe eine Funktion welche beliebig viele Parameter übergeben bekommt. Diese Parameter sollen aber nicht ausgewertet werden, sondern sie interessieren mich überhaupt nicht, weil ich sie einfach nur durchreiche. Also, vielleicht mal ein Beispiel:

    void newPrint( CString szMessage, int iParam1, CString szParam2, ...)
    {
       char cM [ 200];
       sprintf( cM, szMessage, ...)
    }
    

    Versteht man was ich meine?
    Also, der Code funzt natürlich nicht -> weil man die Ellipse nicht so übergeben kann -> und genau das ist ja mein Problem 😉

    LG
    Bum



  • geht leider nicht.

    In deinem Fall kannst du aber die va_list - Variante verwenden:

    void newPrint( CString szMessage, int iParam1, CString szParam2, ...)
    {
       char cM [ 200];
       va_list varg;
       va_start(varg, szParam2);
       vsprintf( cM, szMessage, varg);
       va_end(varg);
    }
    

    Wenn es die innere Funktion nur mit Ellipse gibt, hast Du natürlich Pech. Deswegen gibt es auch bei mir eine "Hausregel": Für jede Funktion mit Ellipse muß auch die entsprechende Funktion mit va_list vorhanden sein.



  • THX.

    Das passt so prima 😉

    Schönes WE


Anmelden zum Antworten