Як організувати затримку виконання програми в C

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

Кроки

  1. 1

    Нехай ваш процесор попрацює протягом деякого часу, не викликаючи помітного події.

  2. 2

    Чи не виконуйте інші операції під час цієї затримки, щоб створити просту тимчасову затримку.

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

  1. 1

    Використовуйте типовий цикл "for", за яким слідує порожній оператор для реалізації затримки.

  2. Як організувати затримку виконання програми в C

    2

    Напишіть наступним чином, для прикладу:
    • for (i = 1 - i<100 - i++) ;

# * Оператор, що йде після "-" змушує комп`ютер виконати цикл 100 разів без помітного події. Він лише створює тимчасову затримку.

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




  1. 1

    Використовуйте sleep (). Функція називається sleep (int ms), оголошена в

  2. 2

  3. 3



Поради

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

Попередження

  • Цей метод, як правило, марний в чому-небудь, крім тривіальної програми. Загалом, використовуйте таймери або подієво-орієнтований підхід, щоб це здійснити. В іншому випадку, програма стане не відповідати протягом часу затримки і це не завжди добре. Крім того, вибір N в циклі, якщо це залежить від виконання команд, може мати несподівані результати. Мабуть, вихідний автор ніколи не чув про оптимизирующем компіляторі ... він може оптимізувати весь цикл, якщо він насправді нічого не робить!
  • Зверніть увагу, що при використанні методу «for-loop» (циклу «for»), можливо, буде потрібно дуже великий інтервал для i, так як порожній оператор виконується дуже швидко. Такі великі цифри можуть не поміститися в тип integer.
  • Якщо ви використовуєте «for-loop», компілятор може оптимізувати код, і, оскільки цикл не робить нічого, видаліть його. Цього не відбувається при використанні Delay ().