Як організувати затримку виконання програми в c
Ви коли-небудь хотіли створити програму на C, котораявижідает певний час? Ви можете налаштувати спосіб, щоб дати часу «пролетіти», наприклад: при показі спливаючій сторінки (повідомлення або підказка) для гри. . ОК, ось кілька способів створення програми виду "stand still" (стояти на місці), читайте далі ...
кроки
1. Нехай ваш процесор попрацює протягом деякого часу, не викликаючи помітного події.
2. Не об`єднуйте свій пристрій інші операції під час цієї затримки, щоб створити просту тимчасову затримку.
Метод 1 з 2:
Методікацікла "for-loop"1. Використовуйте тіпічнийцікл "for", за яким слід порожній оператор для реалізації затримки.
2. Напишіть наступним чином, для прикладу:
Метод 2 з 2:
Методика "sleep ()"1. Використовуйте sleep ().Функція називаетсяsleep (int ms), оголошена в
2. Увімкніть наступний рядок в вашу программуперед "int main ()":
3. Вставте там, де це необхідно, щоб ваша програма зробила затримку:
приклад коду
Програма, яка очікує певну кількість секунд:
#include#include int main () {int del- // The delay periodprintf ( "Enter the delay time (in seconds):") -scanf ( "% i", & del) -del * = 1000- // Multiply it by 1000 to convert to millisecondsDelay (del) - // Delay.printf ( "Done.") -Return 0-}
Програма, яка виконує зворотний відлік від 10 to 0:
#include#include main () {int i-for (i = 10 i> = 0 i -) {printf ( "% i n", i) - // Write the current `countdown` numberDelay (1000) - // Wait a second} return 0-}
Поради
- Мілісекунда - це 1/1000 секунди.
- Алгоритм, зазначений вище, може бути реалізований за допомогою будь-якої циклічної структури з подальшим нульовим оператором - "- як іспользуяцікли while або do-while.
попередження
- Цей метод, як правило, не потрібний у чому-небудь, крім тривіальної програми. Загалом, використовуйте таймери або подієво-орієнтований підхід, щоб це здійснити. В іншому випадку, програма стане не відповідати протягом часу затримки і це не завжди добре. Крім того, вибір N в циклі, якщо це залежить від виконання команд, може мати несподівані результати. Мабуть, вихідний автор ніколи не чув про оптимизирующем компіляторі ... він може оптимізувати весь цикл, якщо він насправді нічого не робить !
- Зверніть увагу, що при використанні методу «for-loop» (циклу «for»), можливо, буде потрібно дуже великий інтервал для i, так як порожній оператор виконується дуже швидко. Такі великі цифри можуть не поміститися в тип integer.
- Якщо ви використовуєте «for-loop», компілятор може оптимізувати код, і, оскільки цикл не робить нічого, видаліть його. Цього не відбувається при використанні Delay ().