Problemsammlung zum Knobeln? <-> Nettes kleines Anfängerproblem...



  • kkkk schrieb:

    Am häufigsten ist wohl:
    `for ( ;; )

    {

    }`

    Mein letzter Stand dazu war, dass das die Endlosschleife ist. Das soll irgendwo im Standard definiert sein oder so ähnlich.

    kkkk schrieb:

    Und nur mit if (...) {] kannst du keine Schleife realisieren.

    Nein, genauso wenig wie mit do {} while (false); 😉 Was aber auch nicht der Sinn der Sache ist. Es geht hier eher um einen gültigen Ausdruck, mit dem man das Makro kapseln kann. Mein Bedenken wäre jetzt, dass es Fälle gibt, wo nur geschweifte Klammern einen falschen Effekt haben. Nur will mir da keiner einfallen, deswegen nutze ich das immer noch. Als ich das erste mal diesen while (false) Ausdruck gesehen habe, dachte ich zuerst, da will jemand die Ausführung unterbinden. Man kann den Leser mit einem ungünstigen Ausdruck sehr leicht verwirren.



  • Naja wenn man mal weiß, das das ein Makro kapselt ist das leicht verständlich (man muss es halt mal wissen...)
    if benutzt man glaub ich nicht weil ja eventuell ein else folgen könnte , also sowas

    #define MACRO_DO do { puts("hallo"); puts("Welt"); }while(0);
    #define MACRO_IF if(1){ puts("hallo"); puts("Welt"); }
    /* ... */
    if(var)
            MACRO_IF
    else /*blablabla */
    

    Das else würde dann hier mit MACRO_IF zusammengehen, was nicht beabsichtigt ist. Mit MACRO_DO passiert nix schlimmes


Anmelden zum Antworten