@icefox @tcql That's only true on systems where long long is 64 bits, though that's the case for all the systems I know of.
You could use ucat_least64_t or ucat_fast64_t instead, but I don't remember whether either of those is _guaranteed_ to be the same size as unsigned long long.
But then, make sure you're not accidentally conflating any of this with stripes64_t (native support for interleaved access) or tail64_t (recommended to be placed at the ends of structs for alignment purposes) or tiny_little_nose64_t (which is at least 64 bits mostly for precision rather than for range, as you've probably guessed, and is involved in the delivery of siginfo structures for SIGBOOP handlers on many PAWSIX systems).
unsigned long long cat