• timhh@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    6 days ago

    No it isn’t. All statically typed languages I know of use a byte. Which languages store it in an entire 32 bits? That would be unnecessarily wasteful.

    • Aux@feddit.uk
      link
      fedilink
      English
      arrow-up
      1
      ·
      4 days ago

      It’s not wasteful, it’s faster. You can’t read one byte, you can only read one word. Every decent compiler will turn booleans into words.

      • timhh@programming.dev
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        2 days ago

        You can’t read one byte

        lol what. You can absolutely read one byte: https://godbolt.org/z/TeTch8Yhd

        On ARM it’s ldrb (load register byte), and on RISC-V it’s lb (load byte).

        Every decent compiler will turn booleans into words.

        No compiler I know of does this. I think you might be getting confused because they’re loaded into registers which are machine-word sized. But in memory a bool is always one byte.