Why u32/i32 and not u32/s32?

Linux picked the less usual convention, but the whole u16 / u32 / i16 etc. thing has a really old history in C. If you needed integer types of a defined width, you used to have to do some platform specific macro trickery to get them in a portable way.

That’s why the later standard went with the more verbose uint8_t thing actually, so it wouldn’t interfere with the shorter versions which were already in heavy use in existing code.

So yeah, that’s why LLVM is like that as well.

1 Like