Како одложити извршавање програма у Ц.

Аутор: Joan Hall
Датум Стварања: 28 Фебруар 2021
Ажурирати Датум: 1 Јули 2024
Anonim
EDIUS 9 ЗА 1 ДЕНЬ/ ОБУЧЕНИЕ EDIUS/ EDIUS TUTORIAL.
Видео: EDIUS 9 ЗА 1 ДЕНЬ/ ОБУЧЕНИЕ EDIUS/ EDIUS TUTORIAL.

Садржај

Да ли сте икада пожелели да креирате Ц програм који чека одређено време? Можете прилагодити начин давања времена "пролету", на пример: када приказујете искачућу страницу (обавештење или наговештај) за игру. ... У реду, ево неколико начина за креирање програма "мири", читајте даље ...

Кораци

  1. 1 Пустите процесор да ради неко време без изазивања посматраног догађаја.
  2. 2 Не изводите никакве друге операције током овог кашњења да бисте створили једноставно временско кашњење.

Метода 1 од 2: Техника за петљу

  1. 1 За примену кашњења користите типичну петљу "фор", праћену празном наредбом.
  2. 2 Напишите на следећи начин, на пример:
    • за (и = 1; и100; и ++);
    • Оператер који следи „;“ присиљава рачунар да се петљу изврши 100 пута без приметног догађаја. То само ствара временско кашњење.

Метода 2 од 2: Техника "слееп ()"

  1. 1 Користите слееп (). Функција се назива слееп (инт мс), декларисана у ТИМЕ.Х>, што тера програм да чека одређено време у милисекундама.
  2. 2 Укључите следећи ред у свој програм пре инт маин ():
    • #инцлуде ТИМЕ.Х>
  3. 3 Налепите где је потребно да бисте одгодили програм:
    • спавање (1000);
    • Промените „1000“ на број милисекунди које желите да сачекате (на пример, ако желите да направите одлагање од 2 секунде, замените га са „2000“.
    • Савет: На неким системима вредност може бити наведена у секундама уместо у милисекундама. Стога понекад 1000 није 1 секунда, већ заправо 1000 секунди.

Пример кода

Програм који чека одређени број секунди:



#инцлуде стдио.х> #инцлуде дос.х> инт маин () {инт дел; // Период одлагања принтф ("Унесите време кашњења (у секундама):"); сцанф ("% и" ,? дел); дел * = 1000; // Помножите га са 1000 за претварање у милисекунде Кашњење (дел); // Одлагање. принтф ("Готово."); ретурн 0; }


Програм који одбројава од 10 до 0:


#инцлуде СТДИО.Х> #инцлуде ТИМЕ.Х> инт маин () {инт и; за (и = 10; и> = 0; и--) {принтф ("% и ​​н", и); // Запис тренутног броја одбројавања Делаи (1000); // Сачекајте секунду} ретурн 0; }

Савјети

  • Милисекунда је 1/1000 секунде.
  • Горњи алгоритам се може применити коришћењем било које структуре петље иза које следи нулл оператор - "; као коришћење вхиле или до -вхиле петљи.

Упозорења

  • Ова метода је генерално бескорисна за било шта друго осим за тривијални програм. Уопштено, користите тајмере или приступ вођен догађајима да бисте то постигли. У супротном, програм ће престати да реагује током времена одлагања и то није увек добро. Такође, одабир Н у петљи, ако зависи од извршавања наредби, може имати неочекиване резултате. Очигледно је да оригинални аутор никада није чуо за оптимизацијски компајлер ... може оптимизирати читаву петљу ако заправо ништа не ради!
  • Имајте на уму да када се користи "фор-лооп" метода, може проћи веома велики интервал за и, пошто је празна наредба врло брза. Тако велики бројеви се можда не уклапају у целобројни тип.
  • Ако користите фор-лооп, компајлер може оптимизовати код, а пошто петља не ради ништа, уклоните га. То се не дешава када користите Делаи ().