Christian Couder <christian.couder@xxxxxxxxx> writes: >> 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.