Единственная причина, по которой я упоминаю эту опцию, заключается в том, что я не увидел ее в списке.
for ( unsigned int i = n-1; i < n; i-- ) {
...
}
Абсолютно против интуиции, но это работает. причина, по которой это работает, состоит в том, что вычитание 1 из 0 дает наибольшее число, которое может быть представлено целым числом без знака.
В общем, я не думаю, что будет хорошей идеей работать с целыми числами без знака и с выражениями, особенно при вычитании.