The standard requires `limits.h` constants to be used in preprocessors. So we use `__SIZEOF_LONG__` instead of `sizeof(long)` to define `LONG_WIDTH`. The macro `__SIZEOF_LONG__` seems to be available on both clang and gcc since at least version 9.
libc