this post was submitted on 04 Feb 2025
133 points (95.2% liked)

Programmer Humor

20305 readers
746 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 

top 18 comments
sorted by: hot top controversial new old
[โ€“] 7uWqKj@lemmy.world 4 points 6 hours ago

#define if while // ๐Ÿคช

[โ€“] csm10495@sh.itjust.works 20 points 15 hours ago (1 children)

Through the magic of make, you can write code that changes if statements to while loops then changes it back after compilation passes or fails.

I only give good advice.

[โ€“] marcos@lemmy.world 32 points 18 hours ago* (last edited 18 hours ago) (2 children)
int main() {
    useless:
    int x = 10;
    if (1) {
        goto useless;
    }
}
[โ€“] Minizarbi@jlai.lu 4 points 8 hours ago

This is the real way!

[โ€“] xmunk@sh.itjust.works 20 points 17 hours ago

Yea, I saw C style and was disappointed when it didn't abuse gotos.

[โ€“] LeFrog@discuss.tchncs.de 20 points 20 hours ago (2 children)
[โ€“] aMockTie@lemmy.world 37 points 19 hours ago (1 children)

Statements that start with # in C/C++ are known as preprocessor directives, that is, they are executed before compilation begins. OP has used a #define which will replace any instance of A (IF(x)) with B (while (x)) in the code.

So the IF statement is really just a while statement.

[โ€“] Kacarott@aussie.zone 12 points 19 hours ago (3 children)

But what is it in reference to? What's the "infamous if loop"?

[โ€“] aMockTie@lemmy.world 36 points 19 hours ago (2 children)

Ah, I believe that would be this image from a college course.

[โ€“] ulterno@programming.dev 2 points 8 hours ago

I always wondered why I always had a hard time making developers not call "if" a "loop".
Turns out it was on their tests.

Glad I didn't read my college material, or I would have lost faith in my college professors.

[โ€“] NigelFrobisher@aussie.zone 4 points 17 hours ago

It just occurred to that in Yorkshire dialect a while loop would actually be an until loop. Directives to the rescue!

[โ€“] kyub@discuss.tchncs.de 9 points 18 hours ago

"Infamous" just refers to newbies who sometimes call if statements "if loops". I've heard this quite a bit.

[โ€“] AliasVortex@lemmy.world 1 points 19 hours ago

Infamous because the condition is 1 (or true), the loop never actually exits because it's always true

[โ€“] Reil@beehaw.org 4 points 18 hours ago* (last edited 18 hours ago) (1 children)

They used a macro to make 'IF' (which is distinctly not 'if') map to 'while'. So it's really a while(1) loop, which will repeat forever, or until the program is terminated, whichever comes first.

Someone's just being silly.

[โ€“] LeFrog@discuss.tchncs.de 1 points 9 hours ago

Thx!

'IF' (which is distinctly not 'if')

Is this something needed "for the meme" or something with this macro or C/C++? Or why the case-sensitivity here? I only know languages like Java, Python, JS. Unfortunately the ancient tongue is not known to me.

[โ€“] tamlyn@lemmy.zip 6 points 18 hours ago

i have a colleague always saying if loop (in our language). I'm a bit to shy to tell him his mistakes... People easily hate me but i would like to...

[โ€“] TheReturnOfPEB@reddthat.com 7 points 21 hours ago

int* ihadatonepointforgottenaboutpoundefinesyoubastard {};