this post was submitted on 17 Mar 2025
1342 points (99.8% liked)

Programmer Humor

34449 readers
224 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] barsoap@lemm.ee 2 points 1 day ago* (last edited 1 day ago) (1 children)

You're right, that's what I get for not having written a line of C in what 15 years. Bonus challenge: write for i in i32::MIN..=i32::MAX in C, that is, iterate over the whole range, start and end inclusive.

(I guess the ..= might be where my confusion came from because Rust's .. is end-exclusive and thus like <, but also not what you want because i32::MAX + 1 panics).

[–] barubary@infosec.exchange 0 points 1 day ago (1 children)
for (int i = INT_MIN; ; i++) {    ...    if (i == INT_MAX) break;}
[–] barsoap@lemm.ee 1 points 1 day ago

Would you be bold enough to write if (i++ == INT_MAX) break? The result of the increment is never used, but an increment is being done, at least syntactically, and it overflows, at least theoretically, so maybe (I'm not 100% sure) the compiler could be allowed to break out into song because undefined behaviour allows anything to happen.