>>20
For example, there is no point in using loose guarantees regarding the sizes of integer types instead of defining their exact sizes/ranges.
There is, portability. Considering C is the layer on top of assembly which is supposed to be portable, this is within the goals and scope of C.
I wish I had a guarantee about the exact size of an int whenever I use one, instead of just knowing that it is ``required to be at least 16 bits long''.
What would you do then?
And what if the int in question is actually 64 bits wide? I may either write non-portable code that relies on this, or portable code that ignores it and wastes lots of memory.
In what way do you consider memory to be wasted? When it can't be done in standard C, then you can only write a wrapper for all the available solutions in all other languages, but not C. This will make your solution - and thus code - as portable as the algorithm and language selected for the task.
If you adhere to a strict interpretation of the C standard, the high-order bits of any integer type that is assigned a size larger than that which the standard requires are mostly unusable (unless you use lots of undesirable #ifs and #defines)
That is wrong. A strict interprentation of the standard would tell you that you don't know which bits are value bits and which are padding (or other types of bits, such as as a sign bit), in other words the C programmer representation agnostic of his integers -- lest he touches the wrong bit. (the standard does specify twos complement for some integers, and representation of floats if a cetrain macro is defined, et&) Also, (int)LONG_INT is imp-specific behavior, while int i = LONG_INT; is undefined behavior. If you were talking about signed integer assignment, you're plain wrong, because the standard says it's undefined.On the other hand, unsigned integers have defined behavior on such cases, so you can't possibly refer to them.
It is simply the case that I know more than you on programming and that you should simply learn more instead of wasting your (and our) time here.