this post was submitted on 06 Oct 2023
14 points (79.2% liked)

Programming

17443 readers
144 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
all 15 comments
sorted by: hot top controversial new old
[–] plistig@feddit.de 18 points 1 year ago* (last edited 1 year ago) (1 children)

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 16 points 1 year ago* (last edited 1 year ago) (1 children)

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

[–] plistig@feddit.de 4 points 1 year ago (1 children)

Yeah, both Voyager and the normal lemmy web client escape the less-than sign. I tried it twice on both clients.

[–] shagie@programming.dev 4 points 1 year ago* (last edited 1 year ago) (1 children)

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 16 points 1 year ago (2 children)

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

[–] vext01@lemmy.sdf.org 12 points 1 year ago

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

Guaranteed to confuse :)

[–] Miaou@jlai.lu 2 points 1 year ago

It's actually ub, so it could also find the cure to cancer

[–] otter@lemmy.ca 12 points 1 year ago

Might help if you add some sample code

[–] pelya@lemmy.world 6 points 1 year ago (2 children)

Pro tip: for(;;) takes less to type thann while(true)

[–] deegeese@sopuli.xyz 20 points 1 year ago

My programs cause enough tears on their own without having to put them in the code itself.

[–] Joey@programming.dev 7 points 1 year ago

#define EVER (;;)

[–] GammaGames@beehaw.org 1 points 1 year ago