Christian Couder [off-list ref] writes:
quoted
I find it far more intuitive to say
for (i = 0; i < ATOM_INVALID; i++)
than having to say UNKNOWN+1.
Yeah, that's more intuitive. But in my opinion, using `ATOM_UNKNOWN +
1` instead of `0` at least shouldn't often result in more lines of
code, and should be a bit easier to get right, compared to having to
initialize the field with ATOM_UNKNOWN.
Number of lines is not all that important.
But the developers must remember that UNKNOWN is at the bottom end
and INVALID is at the top end, which is very taxing. Tying UNKNOWN
to the top end and INVALID to the bottom end would equally be
plausible and there is no memory aid to help us remember which one
is which. Compare it to "array indices begin at 0, and the upper
end is MAX". Your scheme is much easier for developers to screw up.