Parameret mit undefiniertem Parameteranzahl innerhalb von SOLCHER funktion übergeben?



  • Hallo zusammen!
    ich würde gern so das Ding aufrufen können:

    void addChild(uint32_t anzahl, ...){
    
     marker(anzahl, ...); // Hier sollen ja quasi dieselbe Argumente übergeben.
    
    }
    

    Der primitive Kompiler versteht aber nicht der Ausdruck,
    was eig. ein Feature der hoheren Sprachen ist.
    Wie löse ich das Problem?
    Ohne Arrays oder ähnliches, ich möchte der Syntaxis beibehalten.



  • Hi
    Das wird so wohl nicht gehen.
    Das höchste der Gefühle einer Annäherung wird sein:

    void marker ( uint32_t n, va_list vl )
    {
    	// ...
    }
    
    void addChild ( uint32_t n, ... )
    {
    	va_list vl; 
    	va_start ( vl, n );
    	marker ( n, vl );
    	va_end ( vl );
    }
    

    Stellt sich die Frage, ist das sinnvoll? Kann man das nicht lieber gleich in der Funktion addChild (evtl. Funktion sinnvoll umbenennen) erledigen?



  • Hi!
    Danke, dies wäre eine passende Variante.

    den Kode blöd umzukopieren will ich nicht wegen "dont repeat yourself"


Anmelden zum Antworten