Probleme mit dem Ändern von Werten in einem Struct



  • Ich vermute einfach mal, dass es sich in C mit dem , wie in C++ verhält, das heißt er gibt immer das letzte Element zurück.



  • Also ich habe gerade nur den BCB6.0 am Wickel und der erlaubt zwar Kommata bei return-Kommandos, aber nicht, wenn die Funktion einen Rückgabewert "void" hat, so wie im Beispiel des TE 😃



  • dirty little helper schrieb:

    Sowas hier sollte der Compiler eigentlich nicht durchgehen lassen 😉

    return teams,group;
    

    Ist das so? Evaluiert nicht teams,group zum Wert von group ?



  • Ja, aber macht das Sinn, sowas durchgehen zu lassen?
    Meines Erachtens nicht.



  • It0101 schrieb:

    Ja, aber macht das Sinn, sowas durchgehen zu lassen?
    Meines Erachtens nicht.

    Meines Erachtens nach gehört der ganze Kommaoperator in den Reißwolf. Aber wenn man ihn hat, dann bitte auch überall. Sonst würde die Sprache anfangen, unübersichtlich zu werden.

    Und nach

    #ifdef PERFORMANCELOG
    #define READ(x)(++readCount,x)
    #else
    #define READ(x)(x)
    #endif
    

    zum Ausmessen von Lese/Schreibzugriffen von Algorithmen, dann schreibt sucher auch jemand

    {
       return GET(arr[0]);
    

    und schon hätten wir den Salat, wenn der Kommaoperator im return verboten wäre.



  • It0101 schrieb:

    Ja, aber macht das Sinn, sowas durchgehen zu lassen?
    Meines Erachtens nicht.

    Du würdest also an der Syntax herumfrickeln, nur um den Komma-Operator in einem return zu verbieten? Dann wäre C eine B&D-Sprache.

    Macht es Sinn, sowas zu verbieten?

    if (i = 10) do_something();
    


  • mngbd schrieb:

    Dann wäre C eine B&D-Sprache.

    Was ist eine B&D-Sprache?



  • volkard schrieb:

    Meines Erachtens nach gehört der ganze Kommaoperator in den Reißwolf.

    Ich verwende ihn schon seit langem nur noch für sowas wie a++, b++ in for-Schleifen. Aber dort möchte ich ihn nicht vermissen, sonst müsste man im for-Kopf Blöcke erlauben.



  • volkard schrieb:

    Was ist eine B&D-Sprache?

    Ich hatte das hier im Hinterkopf:
    http://catb.org/jargon/html/B/bondage-and-discipline-language.html

    Aber sehr verbreitet ist der Ausdruck nicht.



  • mngbd schrieb:

    volkard schrieb:

    Meines Erachtens nach gehört der ganze Kommaoperator in den Reißwolf.

    Ich verwende ihn schon seit langem nur noch für sowas wie a++, b++ in for-Schleifen. Aber dort möchte ich ihn nicht vermissen, sonst müsste man im for-Kopf Blöcke erlauben.

    Stimmt, an der Stelle macht der Kommaoperator natürlich schon Sinn.
    Das Beispiel hatte ich nicht bedacht.

    Es würde aber auch ohne ihn gehen 😉 Gibt ja im Notfall auch noch andere schleifen 😃


Anmelden zum Antworten