printf(): Maximale Anzahl Argumente?



  • Hallo,

    Ich habe eine frage zu printf. Ist die maximale Anzahl von Argumenten bei printf() beschränkt?
    Bei mir läufts nicht, wenn ich mehr als 6 Parameter angeben!

    //BSP
    //Das geht
    printf(" %d, %d, %d, %d, %d, %d", get_1(), get_2(), get_3(), get_4(), get_5(), get_6());
    
    //Das nicht
    printf(" %d, %d, %d, %d, %d, %d, %d, %d", get_1(), get_2(), get_3(), get_4(), get_5(), get_6(), get_7(), get_8());
    

    Kann ich das irgendwo einstellen? Danke!



  • Wie äußert sich dieses "läuft nicht"?

    Normalerweise können an eine Ellipse (aka variable Argumentliste) beliebig viele Parameter übergeben werden. Du mußt nur der Funktion erklären, wieviele und was für Parameter sie gerade übergeben bekommt, sonst kracht es zur Laufzeit (bei printf machst du das mit dem Formatstring).



  • Ist ein embedded device (www.btnode.ethz.ch) mit AVR GCC.
    crash => reboot des Knotens.

    interessanterweise läuft

    //Das nicht
    printf(" %d, %d, %d, %d, %d, %d, %d, %d", 1, 2, 3, 4, 5, 6, 7, 8);
    

    Die Rückgabewerte der Funktionen sind korrekt!

    edit:url angepasst



  • Da fallen mir nur zwei Erklärungen ein: (a) das System hat einen sehr kleinen Stack-Bereich, der von deinen printf()-Aufrufen überfordert ist, oder (b) irgendeine deiner Get_ Funktionen bereitet Probleme.



  • Midgard schrieb:

    Ist ein embedded device (www.btnode.ethz) mit AVR GCC.

    hier ist der richtige link: http://www.btnode.ethz.ch/


Anmelden zum Antworten