Kako odložiti izvajanje programa v C

Avtor: Joan Hall
Datum Ustvarjanja: 28 Februarjem 2021
Datum Posodobitve: 1 Julij. 2024
Anonim
The Complete Guide to Google Forms - Online Survey and Data Collection Tool!
Video.: The Complete Guide to Google Forms - Online Survey and Data Collection Tool!

Vsebina

Ste si kdaj želeli ustvariti program C, ki čaka na določen čas? Prilagodite lahko način, da "naletite" na primer: ko prikazujete pojavno stran (obvestilo ali namig) za igro. ... V redu, tukaj je nekaj načinov za ustvarjanje programa "miruj", beri naprej ...

Koraki

  1. 1 Pustite, da vaš procesor deluje nekaj časa, ne da bi povzročil opazen dogodek.
  2. 2 Med to zamudo ne izvajajte nobenih drugih operacij, da bi ustvarili preprosto časovno zamudo.

Metoda 1 od 2: Tehnika za zanko

  1. 1 Za izvedbo zamude uporabite tipično zanko "for", ki ji sledi prazen stavek.
  2. 2 Napišite na primer tako:
    • za (i = 1; i100; i ++);
    • Operater, ki sledi ";" prisili računalnik, da se 100 -krat ponovi brez opaznega dogodka. Ustvarja le časovno zamudo.

Metoda 2 od 2: Tehnika "sleep ()"

  1. 1 Uporabi spanje (). Funkcija se imenuje sleep (int ms), deklarirana v TIME.H>, zaradi česar program čaka na določen čas v milisekundah.
  2. 2 V svoj program pred int main () vključite naslednjo vrstico:
    • #vključi TIME.H>
  3. 3 Prilepite, kjer je potrebno, da zakasnite program:
    • spanje (1000);
    • Spremenite "1000" na število milisekund, ki jih želite počakati (na primer, če želite narediti 2 -sekundno zamudo, jo zamenjajte z "2000".
    • Nasvet: V nekaterih sistemih je lahko vrednost določena v sekundah namesto v milisekundah. Zato včasih 1000 ni 1 sekunda, ampak dejansko 1000 sekund.

Vzorčna koda

Program, ki čaka na določeno število sekund:



#include stdio.h> #include dos.h> int main () {int del; // Obdobje zakasnitve printf ("Vnesite čas zakasnitve (v sekundah):"); scanf ("% i" ,? del); del * = 1000; // Pomnožimo s 1000 za pretvorbo v milisekunde Zamuda (del); // Zamuda. printf ("Končano."); vrnitev 0; }


Program, ki odšteva od 10 do 0:


#include STDIO.H> #include TIME.H> int main () {int i; za (i = 10; i> = 0; i--) {printf ("% i n", i); // Zapišite trenutno številko "odštevanja" Zakasnitev (1000); // Počakaj sekundo} return 0; }

Nasveti

  • Milisekunda je 1/1000 sekunde.
  • Zgornji algoritem je mogoče izvesti s katero koli strukturo zanke, ki ji sledi ničelni operater - "; kot uporaba zank while ali do -while.

Opozorila

  • Ta metoda je na splošno neuporabna za nič drugega kot za nepomemben program. Na splošno za to uporabite časovnike ali pristop, ki temelji na dogodkih. V nasprotnem primeru se program med zamikom ne bo odzival, kar ni vedno dobro. Tudi izbira N v zanki, če je odvisna od izvajanja ukazov, ima lahko nepričakovane rezultate. Očitno prvotni avtor nikoli ni slišal za optimizacijski prevajalnik ... lahko optimizira celotno zanko, če dejansko ne naredi ničesar!
  • Upoštevajte, da lahko pri uporabi metode "for-loop" traja zelo velik interval za i, saj je prazen stavek zelo hiter. Tako velika števila morda ne sodijo v celoštevilski tip.
  • Če uporabljate zanko for, lahko prevajalnik optimizira kodo, in ker zanka ne naredi ničesar, jo odstranite. Pri uporabi Delay () se to ne zgodi.