The real original sin of C isn't NULL, or void*, or array indexing, or strcat...
It's signed integers.
@foone You should do this. It would be nice.
@foone A decent number of my compiler errors were search and replacing "singed" for "signed".
@growf don't let your numbers get too close to the fire! you'll get singed integers!
@foone those are the natural numbers then, not integers.
Proposal: in their 64 bit incarnation you call them big naturals
@wotsac so instead of int and bigint, they can be nat and bignat!
@0xdd @foone
that's not the default, on 16bit architectures int was 16 bit - it's just that for most 64bit architectures (I think in the early days there were outliers?) int was kept at 32bits instead of making it the native word size again.
I personally would prefer if short were *always* 16bit, int 32bit, long 64bit, but that's something one can do in a new programming language (D does it), for C with its loong history that's not possible
@Doomed_Daniel @foone @jrose yeah, the longer non-quip version is something like there should be native data types for specific sizes and some extras that are per CPU like native register width, etc.
make uintX_t etc the default, make char 8 bits because utf8, and yeet short, int, long, etc
@Doomed_Daniel Yeah, I settled on “always cast to the bigger type if it really matters” :-/
@Doomed_Daniel yeah, i always forget that with size_t. must be a real pita for cross platform stuff
@0xdd long being 32bit on Win64 is especially annoying for crossplatform stuff.
For size_t you at least can use %zu (or %zx or whatever)