Тут не гадать, а пробовать надо: в другом "букваре" нашел другое толкование для ";":
Цитата
Точка с запятой ";" - это ограничитель оператора. Любое допустимое в Си выражение (включая пустое) завершенное точкой с запятой интепретируется как оператор, называемый еще оператором выражения. Выражение вычисляется и его значение пропадает. Если выражение не имеет побочных эффектов, mikroC может игнорировать его.
Ничего нового: зачем-то пишут книги с ошибками (или, в лучшем случае, с недосказанностями), народ за них платит
неслабые деньги, и, эквигенитально, ничего не работает в программе.
if(); - в примерах кода ";" после "if()" не встречается.
А про
Код
if()
{};
прямо написано, что так писать код нельзя.
Теперь о практике:
Код
time2 = time2++;
Ну, я на знание кашрута не претендую. Рано! Обычно пишу
Код
time2 = time2 + 1;
мне так понятнее.
И строку
Код
knopka_prev ^= 1; // изменим сохранённое состояние
// (так будет короче и корректнее, чем knopka_prev = knopka_start;)
мне понятнее написать как
Код
knopka_prev = knopka_prev ^ 1; // если knopka_prev = 1, возвращает 0; если knopka_prev = 0, возвращает 1.
Сообщение отредактировал loghir - May 10 2011, 13:24