Как организовать задержку выполнения программы в C

Вы когда-нибудь хотели создать программу на C, которая выжидает определенное время? Вы можете настроить способ, чтобы дать времени «пролететь», например: при показе всплывающей страницы (уведомление или подсказка) для игры. . ОК, вот несколько способов создания программы вида "stand still" (стоять на месте), читайте дальше ...

Шаги

  1. Пусть ваш процессор поработает в течение некоторого времени, не вызывая заметного события.
  2. Не выполняйте другие операции во время этой задержки, чтобы создать простую временную задержку.

Метод 1 из 2: ика цикла "for-loop"

  1. Используйте типичный цикл "for", за которым следует пустой оператор для реализации задержки.
  2. Напишите следующим образом, для примера:
    • for (i=1 ; i<100 ; i++) ;

Метод 2 из 2: ика "sleep()"

  1. Используйте sleep(). Функция называется sleep(int ms), объявленная в , которая заставляет программу ждать в течение указанного времени в миллисекундах.
  2. Включите следующую строку в вашу программу перед "int main()":
    • #include
  3. Вставьте там, где это необходимо, чтобы ваша программа сделала задержку:
    • sleep(1000);
    • Измените "1000" на количество миллисекунд, которые вы хотите ждать (например, если вы хотите сделать 2-секундную задержку, замените его на "2000".
    • Совет: В некоторых системах значение может указываться в секундах вместо миллисекунд. Поэтому, иногда 1000 - не является 1 с, но, в действительности, 1000 секунд.

Советы

  • Миллисекунда – это 1/1000 секунды.
  • Алгоритм, указанный выше, может быть реализован с помощью любой циклической структуры с последующим нулевым оператором-"; как используя циклы while или do-while.

Предупреждения

  • Этот метод, как правило, бесполезен в чем-либо, кроме тривиальной программы. В общем, используйте таймеры или событийно-ориентированный подход, чтобы это осуществить. В противном случае, программа станет не отвечать в течение времени задержки и это не всегда хорошо. Кроме того, выбор N в цикле, если это зависит от выполнения команд, может иметь неожиданные результаты. По-видимому, исходный автор никогда не слышал об оптимизирующем компиляторе ... он может оптимизировать весь цикл, если он на самом деле ничего не делает !
  • Обратите внимание, что при использовании метода «for-loop» (цикла «for»), возможно, потребуется очень большой интервал для i, так как пустой оператор выполняется очень быстро. Такие большие цифры могут не поместиться в тип integer.
  • Если вы используете «for-loop», компилятор может оптимизировать код, и, поскольку цикл не делает ничего, удалите его. Этого не происходит при использовании Delay().
Информация
Посетители, находящиеся в группе Guests, не могут оставлять комментарии к данной публикации.