3 ms·
If C made this change, it could also make it legal to redefine u32 etc as appropriate integer types any number of times without erring.
by pornel 3y ago
If C made this change, it could also make it legal to redefine u32 etc as appropriate integer types any number of times without erring.
- saagarjha 3y agofoo.h defines i64 as “long” and bar.h defines it as “long long”. Now what?
- kevin_thibedeau 3y agoThis would break legacy code. I had one employer with a bool type that was a 32-bit integer because of obscure alignment issues. This is why _Bool exists and the bool typedef has to be brought in explicitly with stdbool. You can't just go and usurp popular short type names. The standard reserved *_t and _[A-Z].+ for this purpose. People have been writing portable code with the expectation that future standards aren't going violate that promise and break things.
- alexvoda 3y agoThis is just one of the reasons that new languages that dispense with outdated assumptions and insted make assumptions more suitable to our times are a good thing. C and C++ are really old and some things can not be fixed with libraries.