Как уже говорилось, в C вы можете использовать целые числа в качестве условия - 0 или false
, что-нибудь еще для true
. (На самом деле, вы почти всегда делаете это - даже выражение типа a<b
является целым)
Итак, цикл закончится, когда bits--
будет равно 0.
Когда оператор --
следует за переменной, он уменьшает переменную и получает ее предыдущее значение. например, если у вас есть int a=3,b; b=a--;
, то b будет 3, а a будет 2.
Итак, цикл завершится после того, как эти биты будут уменьшены с 0
до -1
.
Это означает, что если в начале, bits==8
(например), цикл будет повторяться 8 раз, когда в первом, биты будут 7 (потому что условие проверено), а в последнем, биты будут 0 Хороший способ перебрать массив (так как в c, массив bits
переменных был проиндексирован от 0
до bits-1
).