• Lauchmelder@feddit.de
    link
    fedilink
    Deutsch
    arrow-up
    2
    arrow-down
    5
    ·
    3 months ago

    The reason is that header files are pretty much copy/pasted into your c files when you include them. so the code in them keeps getting recompiled for every c file, which drastically increases overall build times. If you only declare in the header and have one c file implementing the functions you compile them only once.

    • Victor@lemmy.world
      link
      fedilink
      arrow-up
      12
      arrow-down
      1
      ·
      3 months ago

      AI reply? That’s the point they’re trying to make. The implementation shouldn’t be in the header file, but it is. Look at the image.

      • Lauchmelder@feddit.de
        link
        fedilink
        Deutsch
        arrow-up
        2
        arrow-down
        4
        ·
        3 months ago

        pretty sure the meme is about how the implementation looks ugly but using the implementation looks good because all the code is abstracted away. if it was like you said then why would they compare the code to the main.cpp

        • Victor@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          3 months ago

          I got confused. I was referring to the top-level comment in this thread, but that was actually posted by you, so… I got turned around.

          But yeah, sounds about right, that the meme could be referring to the horrors in the h file vs the clean cpp file. 😄

    • abrahambelch@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      3 months ago

      Yeah that’s why you’re supposed to use header guards… If you don’t and include your header in multiple places your program straight up won’t compile.

    • bort@sopuli.xyz
      link
      fedilink
      arrow-up
      3
      arrow-down
      6
      ·
      3 months ago

      drastically increases overall build times

      oh wow. from 0ms all the way up to 0ms. That’s almost 1000 times faster wow.