Kako odgoditi izvršavanje programa u C -u

Autor: Joan Hall
Datum Stvaranja: 28 Veljača 2021
Datum Ažuriranja: 1 Srpanj 2024
Anonim
Kako odgoditi izvršavanje programa u C -u - Društvo
Kako odgoditi izvršavanje programa u C -u - Društvo

Sadržaj

Jeste li ikada poželjeli stvoriti C program koji čeka određeno vrijeme? Možete prilagoditi način davanja vremena da "proleti", na primjer: pri prikazivanju skočne stranice (obavijest ili savjet) za igru. ... U redu, evo nekoliko načina za stvaranje programa "miri", čitajte dalje ...

Koraci

  1. 1 Pustite procesor da radi neko vrijeme bez izazivanja opažljivog događaja.
  2. 2 Nemojte izvoditi druge radnje tijekom ovog odgode kako biste stvorili jednostavno vremensko kašnjenje.

Metoda 1 od 2: Tehnika za petlju

  1. 1 Za implementaciju kašnjenja upotrijebite tipičnu petlju "for" nakon koje slijedi prazna naredba.
  2. 2 Napiši ovako, na primjer:
    • za (i = 1; i100; i ++);
    • Operater slijedi ";" prisiljava računalo da se petlja 100 puta bez uočljivog događaja. To samo stvara vremensko kašnjenje.

Metoda 2 od 2: Tehnika "sleep ()"

  1. 1 Koristite sleep (). Funkcija se naziva sleep (int ms), deklarirana u TIME.H>, zbog čega program čeka određeno vrijeme u milisekundama.
  2. 2 Uključite sljedeći redak u svoj program prije int main ():
    • #uključuje TIME.H>
  3. 3 Zalijepite gdje je potrebno da odgodite program:
    • spavati (1000);
    • Promijenite "1000" na broj milisekundi koje želite čekati (na primjer, ako želite odgoditi 2 sekunde, zamijenite ga sa "2000".
    • Savjet: Na nekim sustavima vrijednost se može navesti u sekundama umjesto u milisekundama. Stoga ponekad 1000 nije 1 sekunda, već zapravo 1000 sekundi.

Uzorak koda

Program koji čeka određeni broj sekundi:



#include stdio.h> #include dos.h> int main () {int del; // Razdoblje odgode printf ("Unesite vrijeme odgode (u sekundama):"); scanf ("% i" ,? del); del * = 1000; // Pomnožimo s 1000 za pretvaranje u milisekunde Kašnjenje (del); // Odgoda. printf ("Gotovo."); return 0; }


Program koji odbrojava od 10 do 0:


#include STDIO.H> #include TIME.H> int main () {int i; za (i = 10; i> = 0; i--) {printf ("% i n", i); // Zapis trenutnog broja odbrojavanja Odgoda (1000); // Pričekajte sekundu} return 0; }

Savjeti

  • Milisekunda je 1/1000 sekunde.
  • Gornji algoritam može se implementirati pomoću bilo koje strukture petlje iza koje slijedi null operator - "; kao korištenje while ili do -while petlji.

Upozorenja

  • Ova je metoda općenito beskorisna za bilo što osim trivijalnog programa. Općenito, upotrijebite mjerače vremena ili pristup vođen događajima da biste to postigli. Inače, program će prestati reagirati tijekom vremena odgode, a to nije uvijek dobro. Također, odabir N u petlji, ako ovisi o izvršavanju naredbi, može imati neočekivane rezultate. Očito izvorni autor nikada nije čuo za optimizacijski prevoditelj ... može optimizirati cijelu petlju ako zapravo ništa ne radi!
  • Imajte na umu da pri korištenju metode "for-loop" može proći vrlo veliki interval za i, budući da je prazan izraz vrlo brz. Takvi veliki brojevi možda se ne uklapaju u cijeli broj.
  • Ako koristite for-loop, prevoditelj može optimizirati kôd, a budući da petlja ne radi ništa, uklonite ga. To se ne događa kada koristite Delay ().