• plistig@feddit.de
    link
    fedilink
    arrow-up
    18
    ·
    edit-2
    1 year ago

    A semicolon ends a statement, and semicolon is a statement on its own. One that does nothing. That’s why you can write

    int i;
    for (i = 0; i ᐸ 3; i++);
    

    to set i = 3. You can use that pattern to find something in an iterator, etc. But I would prefer

    int i = 0;
    while (i ᐸ 3) {
       i++;
    }
    

    for readability.

    • octoperson@sh.itjust.works
      link
      fedilink
      arrow-up
      16
      ·
      edit-2
      1 year ago

      Your less thans got HTML-escaped into < and I spent embarrassingly long trying to figure out what pointer magic you were demonstrating

        • shagie@programming.dev
          link
          fedilink
          arrow-up
          4
          ·
          edit-2
          1 year ago

          Some time back there was an attack on Lemmy where (if I recall correctly) HTML embedded in emoji allowed tokens of users viewing the emoji to get stolen… which included administrators auth tokens. There was much havoc wrecked that evening.

          The mitigation for this was “all HTML entities are escaped”. Doesn’t matter where they are - they’re escaped. This sometimes leads to them being doubly escaped when rendering. Less than, ampersand, and greater than all get doubly escaped ( > & < ).

          … And that gets interesting as I can’t quite tickle that issue.

  • JakenVeina@lemm.ee
    link
    fedilink
    arrow-up
    16
    ·
    1 year ago

    The loop will run to completion with no side effects. Unless it gets optimized away by the compiler or CPU.

    • vext01@lemmy.sdf.org
      link
      fedilink
      arrow-up
      12
      ·
      1 year ago

      Now slap some commas in there and you can have side effects in the loop header.

      Guaranteed to confuse :)