Описание:
Функция для вычисления времени, прошедшего между двумя вызовами GetTickCount(), с учётом возможности переполнения переданных значений.

Параметры:
newtick - текущее значение времени
oldtick - предыдущее значение времени

Возвращаемое значение:
Функция возвращает время, прошедшее между двумя переданными в неё значениями.

Код:
PHP код:
stock GetTickDiff(newtickoldtick)
{
    if (
oldtick && newtick >= 0) {
        return 
newtick oldtick;
    } else if (
oldtick >= && newtick || oldtick newtick) {
        return (
cellmax oldtick 1) - (cellmin newtick);
    }
    return 
newtick oldtick;

Примечания:
  • Всегда знал, что данный фикс уже существует и не испытывал надобности в его написании, но после изучения реализации, рекомендуемой в wiki, понял, что она работает не корректно. Создал Pull Request в репозитории автора этого фикса, в котором вы можете найти код теста и его результаты.

Пример использования:
PHP код:
main()
{
    new 
tick GetTickCount();
    
// ...
    
printf("ticks: %d"GetTickDiff(GetTickCount(), tick));

Автор: ziggi