va_list anzahl der Parameter ermitteln?



  • Hallo ich beschäftige mich gerade ein wenig mit C und Funktionen mit offener Parameterliste.

    In ein paar Beispielen musste ich fest stellen dass man überall selber über einen int übergeben muss wie viele Parameter man übergibt.

    Aber gibt es keine Möglichkeit die Anzahl der Parameter in der Funktion zu ermitteln?
    Bei printf, scanf muss ich ja schließlich auch nicht über einen int übergeben wie viel Parameter ich übergebe.



  • lord_fritte schrieb:

    Aber gibt es keine Möglichkeit die Anzahl der Parameter in der Funktion zu ermitteln?

    nein, es gibt keine

    lord_fritte schrieb:

    Bei printf, scanf muss ich ja schließlich auch nicht über einen int übergeben wie viel Parameter ich übergebe.

    Nein, aber die Anzahl der erwarteten Argumente wird durch das Format festgelegt: "text %s text %d" . printf weiß wegen '%s' und '%d', dass es zwei Parameter lesen muss. Angenommen du rufst so auf: printf("%d hi %s\n", 19); dann wird printf zwar 2 Parameter erwarten, aber nicht erkennen, dass du nur eins übergeben hast.



  • achja stimmt, ich kann das ja zählen, sorry dass ich nicht dran gedacht habe..
    Aber wie würde dass denn mit einer dynamischen Typeerkennung funktion,
    bei %d: double, float, short, int
    %s: char*, string


Anmelden zum Antworten