Главная » 2015 » Июль » 26 » Как организовать задержку выполнения программы в C
17:54
Как организовать задержку выполнения программы в C

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

2 методика:ика цикла "for-loop"ика "sleep()"

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

Шаги

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

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

  1. 1Используйте типичный цикл "for", за которым следует пустой оператор для реализации задержки.
  2. 2 Напишите следующим образом, для примера: http://pad3.whstatic.com/images/thumb/b/b7/Delay-in-C-Step-4-preview.jpg/550px-Delay-in-C-Step-4-preview.jpg http://pad2.whstatic.com/images/thumb/b/b7/Delay-in-C-Step-4-preview.jpg/300px-Delay-in-C-Step-4-preview.jpg http://d5kh2btv85w9n.cloudfront.net/4/42/Delay in C Step 4.360p.mp4
    • for (i=1 ; i<100 ; i++) ;

</100>#* Оператор, идущий после ";" заставляет компьютер выполнить цикл 100 раз без заметного события. Он лишь создает временную задержку.

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

  1. 1 Используйте sleep(). Функция называется sleep(int ms), объявленная в , которая заставляет программу ждать в течение указанного времени в миллисекундах.

    http://pad2.whstatic.com/images/thumb/0/08/Delay-in-C-Step-5-preview.jpg/550px-Delay-in-C-Step-5-preview.jpg http://pad1.whstatic.com/images/thumb/0/08/Delay-in-C-Step-5-preview.jpg/300px-Delay-in-C-Step-5-preview.jpg http://d5kh2btv85w9n.cloudfront.net/f/f2/Delay in C Step 5.360p.mp4
  2. 2 Включите следующую строку в вашу программу перед "int main()": http://pad1.whstatic.com/images/thumb/f/fb/Delay-in-C-Step-6-preview.jpg/550px-Delay-in-C-Step-6-preview.jpg http://pad1.whstatic.com/images/thumb/f/fb/Delay-in-C-Step-6-preview.jpg/300px-Delay-in-C-Step-6-preview.jpg http://d5kh2btv85w9n.cloudfront.net/c/ca/Delay in C Step 6.360p.mp4
    • #include
  3. 3 Вставьте там, где это необходимо, чтобы ваша программа сделала задержку: http://pad1.whstatic.com/images/thumb/e/ed/Delay-in-C-Step-7-preview.jpg/550px-Delay-in-C-Step-7-preview.jpg http://pad3.whstatic.com/images/thumb/e/ed/Delay-in-C-Step-7-preview.jpg/300px-Delay-in-C-Step-7-preview.jpg http://d5kh2btv85w9n.cloudfront.net/e/ec/Delay in C Step 7.360p.mp4
    • sleep(1000);
    • Измените "1000" на количество миллисекунд, которые вы хотите ждать (например, если вы хотите сделать 2-секундную задержку, замените его на "2000".
    • Совет: В некоторых системах значение может указываться в секундах вместо миллисекунд. Поэтому, иногда 1000 - не является 1 с, но, в действительности, 1000 секунд.


Пример кода

Программа, которая ожидает определенное количество секунд:

#include <stdio.h> #include <dos.h> int main() { int del; // The delay period printf("Enter the delay time (in seconds): "); scanf("%i",&del); del *= 1000; // Multiply it by 1000 to convert to milliseconds Delay(del); // Delay. printf("Done."); return 0; }


Программа, которая выполняет обратный отсчет от 10 to 0:

#include <STDIO.H> #include <TIME.H> int main() { int i; for(i = 10; i >= 0; i--) { printf("%i ",i); // Write the current 'countdown' number Delay(1000); // Wait a second } return 0; }

Советы

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

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

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