Как да организирате забавяне на изпълнението на програмата в c

Искали ли сте някога да създадете програма за C, която линиите за определено време? Можете да конфигурирате начин да "летите", например: при показване на изскачаща страница (уведомление или съвет) за възпроизвеждане. . Добре, ето някои начини за създаване на програма тип "Стойте неподвижно" (Стойте неподвижно), прочетете ...

Стъпка

  1. Изображение, озаглавено Забавяне в С стъпка 1
един. Нека вашият процесор работи за известно време, без да причинява забележимо събитие.
  • Изображение, озаглавено забавяне в С стъпка 2
    2. Не извършвайте други операции по време на това забавяне, за да създадете просто временно забавяне.
  • Метод 1 от 2:
    Методикикла "замръзване"
    1. Изображение, озаглавено Забавяне в С стъпка 3
    един. Използвайте типиченциклит"За", последван от празен оператор за прилагане на закъснението.
  • Изображение, озаглавено забавяне в Степен 4
    2. Напишете както следва, например:
  • за (i = 1 - i<100>
  • Оператор отива след това "-" прави компютъра да изпълнява цикъл 100 пъти без забележимо събитие. Тя създава само временно забавяне.
  • Метод 2 от 2:
    Методик"Сън ()"
    1. Изображение, озаглавено забавяне в СТЪПКА 5
    един. Използвайте сън ().Функцията е приведена (int ms), обявена в
  • Изображение, озаглавено Забавяне в С стъпка 6
    2. Активирайте следния ред в програмата си"Int main ()". T
  • #Include
  • Изображение, озаглавено забавяне в Степен 7
    3. Вмъкнете къде е необходимо програмата ви да направи забавянето:
  • Сън (1000);
  • Промяната "1000" на броя на милисекунди, които искате да изчакате (например, ако искате да направите 2-секундно закъснение, заменете"2000".
  • Съвет: В някои системи стойността може да бъде показана за секунди вместо милисекунди. Ето защо, понякога 1000 - не е 1 s, но всъщност, 1000 секунди.
  • Примерен код

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

    #Include #Include int main () {int del- // периода на закъснение ("Въведете времето за закъснение (в секунди): ") -SCANF ("% I",& del) -дел * = 1000- // Умножете го с 1000, за да конвертирате в Millisecondsdelay (DEL) - // Забавяне.PRINTF ("Свършен.") -Създайте 0-}


    Програма, която извършва броене от 10 до 0:

    #Include #Include  main () {IN I-for (i = 10- i> = 0- i -) {printf ("% i",i) - // Напишете текущия номер на "броене" (1000) - // изчакайте секунда ► връщане 0-}

    Съвети

    • Millisecunda е 1/1000 секунди.
    • Алгоритъмът, посочен по-горе, може да бъде приложен чрез всяка циклична структура с последващия нулев оператор-"- Как да използвате, докато или правите.

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

    • Този метод обикновено е безполезен в нещо различно от тривиалната програма. Като цяло използвайте таймери или ориентиран към събития подход за прилагане. В противен случай програмата няма да реагира по време на времето за закъснение и не винаги е добро. В допълнение, изборът на n в цикъла, ако зависи от изпълнението на командите, може да има неочаквани резултати. Очевидно авторът на източника никога не е чувал за оптимизирането на компилатора ... Тя може да оптимизира целия цикъл, ако всъщност не прави нищо !
    • Обърнете внимание, че когато използвате метода "for-loop" ("за" цикъл), може да е необходимо за много голям интервал за I, тъй като празният оператор се изпълнява много бързо. Такива големи номера не могат да се вписват в цяло число.
    • Ако използвате "for-loop", компилаторът може да оптимизира кода и тъй като цикълът не прави нищо, премахнете го. Това не се случва при използване на закъснение ().
    Подобни публикации