• aMockTie@lemmy.world
      link
      fedilink
      arrow-up
      44
      ·
      7 天前

      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.

    • Reil@beehaw.org
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      7 天前

      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
        link
        fedilink
        arrow-up
        2
        ·
        7 天前

        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.

        • Reil@beehaw.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 天前

          It’s not really that important to the joke, since I’m pretty sure you can also replace keywords like ‘if’ with the preprocessor. It’s just that preprocessor macros are typically (style, not syntax) ALL_CAPS_WITH_UNDERSCORES.

          It’s just another clue that that block isn’t actually an if-block, since C is case sensitive and ‘IF’ wouldn’t actually work.