Alt text:

Transcendence meme template

function main() {…}

int main() {…}

void main() {…}

U0 main() {…}

/* HolyC example */
U0 Main()
{
  U8 *message = "hello world";
  "%s\n",message;
}
Main;
  • Ephera@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    Huh, so if you don’t opt for these more specific number types, then your program will explode sooner or later, depending on the architecture it’s being run on…?

    I guess, times were different back when C got created, with register size still much more in flux. But yeah, from today’s perspective, that seems terrifying. 😅

    • fiqusonnick@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      The C standard for different ints is absolutely cursed, even after C99 tried to normalize it. The only requirement is that sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long) and sizeof(char) == 1. Mind you they don’t define what size a byte is so you technically can have an architecture where all of those are 64 bits. Oh and for that same reason exact-size types (int32_t, uint16_t etc) are not guaranteed to be defined

      Fuck