В продолжение темы об особенностях сравнения:
Есть у меня счётчик системных тиков Time, и есть Timer, который защёлкивает текущее значение в определённый момент. Затем происходит сравнение if(Time-Timer>(RegDelay+10)) {DoSomething()} То есть отсчитывается задержка и выполняется определённое действие. Timer и Time - unsigned int. Как мне кажется (и вроде бы так и работает), при переполнении Time всё будет продолжать работать как надо. Нет ли тут подводных граблей? (имеется в виду "проблема 2000 года") И что произойдёт, если в Timer загонять время для будущего запуска действия (Timer=Time+Delay), а потом сравнивать if(Time>Timer) (Это я сейчас так сделал, а потом озаботился) Time и Timer теперь unsigned long, но и он когда-то переполнится...
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|