Comment by pjmlp
13 hours ago
The deal was dealing with #ifdef spaghetti to define all of those, especially when mixing libraries across platforms.
13 hours ago
The deal was dealing with #ifdef spaghetti to define all of those, especially when mixing libraries across platforms.
Ifdef soup is still horrible, so those times (which I didn't experience firsthand) must have been abysmal.
If you want to know how bad it can be, only need to take a look at GCC's implementation of `stddef.h` for `size_t` and `ptrdiff_t` etc.
https://github.com/gcc-mirror/gcc/blob/master/gcc/ginclude/s...
There's a simpler way to define these types in newer versions of C which have `typeof`, we can take advantage of the fact that `sizeof()` always returns a `size_t`, `ptr - ptr` always returns a `ptrdiff_t`, and a literal L'c' has type `wchar_t`, etc.
Don't need ifdef soup to test what the sizes of things are on different architectures - we just utilize the compiler's implementation of those types.