Вы можете использовать более широкий тип (например, unsigned int
), чтобы сделать это с минимальным изменением кода. Другой вариант - использовать различные l oop варианты, такие как do..while
:
int highestNum = 255;
{
unsigned char i = 0;
do {
printf("%u\n", i);
++i;
} while (i <= highestNum && i != 0);
}
. Это имеет область видимости, аналогичную вашей for
l oop, в этом i
не «экранирует» блок, в котором он объявлен, и проверка на i
против нуля ловит случай обращения (что более сложно в for
l oop, так как проверяет условие в начало каждой итерации, а не конец).
Обратите внимание, что нет проверки, гарантирующей, что highestNumber
равен нулю или более, поэтому по крайней мере один файл всегда будет удален. Если вы хотите, чтобы возможность не указывать файлы (например, вы должны установить highestNumber
в -1
, если нет файлов должны быть удалены), вы можете добавить простую предварительную проверку:
int highestNum = 255;
if (highestNumber >= 0) {
unsigned char i = 0;
do {
printf("%u\n", i);
++i;
} while (i <= highestNum && i != 0);
}