Как правильно итерироваться назад в C: цикл, который все пишут неправильно

Iterating Backwards in C

Автор разбирает типичную ошибку при обратном обходе массива в C: цикл с беззнаковым индексом и условием i >= 0 либо не работает, либо приводит к переполнению. Он показывает корректный и короткий вариант for(size_t i = count; i--; ), объясняет, почему постдекремент гарантирует безопасность индекса и почему это лучше знакового ssize_t, особенно в эпоху LLM, когда ошибки тиражируются.

i >= 0 тавтологически истинно (современные компиляторы предупредят). Хуже того, если count равен 0, i немедленно становится SIZE_MAX.

Ещё за этот день

2026-10-30