Hogyan lehet késleltetni a program végrehajtását C -ben

Szerző: Joan Hall
A Teremtés Dátuma: 28 Február 2021
Frissítés Dátuma: 1 Július 2024
Anonim
Hogyan lehet késleltetni a program végrehajtását C -ben - Társadalom
Hogyan lehet késleltetni a program végrehajtását C -ben - Társadalom

Tartalom

Szeretett volna olyan C programot létrehozni, amely bizonyos ideig vár? Testreszabhatja az idő repülési módját, például: amikor egy felugró oldalt (értesítést vagy tippet) mutat a játékhoz. ... Rendben, íme néhány módszer a "álló helyzet" program létrehozására, olvassa el ...

Lépések

  1. 1 Hagyja a processzort egy ideig működni anélkül, hogy megfigyelhető eseményt okozna.
  2. 2 Ne végezzen semmilyen más műveletet ezen késleltetés alatt, hogy egyszerű késleltetést hozzon létre.

1 /2-es módszer: For-loop technika

  1. 1 A késleltetés megvalósításához használjon tipikus "for" ciklust, majd üres utasítást.
  2. 2 Írja például a következőket:
    • for (i = 1; i100; i ++);
    • Az operátor a ";" kényszeríti a számítógépet 100 -szoros hurokra, észrevehető esemény nélkül. Csak időkésleltetést okoz.

2. módszer 2 -ből: Az "alvás ()" technika

  1. 1 Használja az alvást (). A függvényt alvásnak (int ms) nevezik, a TIME.H> -ban deklarálva, ami miatt a program meghatározott ideig vár milliszekundumokban.
  2. 2 Írja be a következő sort a programba az int main () előtt:
    • #magában foglalja az IDŐT. H>
  3. 3 Illessze be a szükséges helyre, hogy késleltesse a programot:
    • alvás (1000);
    • Módosítsa az "1000" értéket a várni kívánt ezredmásodpercekre (például ha 2 másodperces késleltetést szeretne végrehajtani, cserélje ki "2000" értékre.
    • Tipp: Bizonyos rendszereken az érték ezredmásodperc helyett másodpercben adható meg. Ezért néha az 1000 nem 1 másodperc, hanem valójában 1000 másodperc.

Mintakód

Egy program, amely bizonyos számú másodpercet vár:



#include stdio.h> #include dos.h> int main () {int del; // A késleltetési időszak printf ("Adja meg a késleltetési időt (másodpercben):"); scanf ("% i" ,? del); del * = 1000; // Szorozzuk meg 1000 -el, hogy ezredmásodpercűvé váljunk Késleltetés (del); // Késleltetés. printf ("Kész"); visszatérés 0; }


Egy program, amely 10 -ről 0 -ra számol vissza:


#include STDIO.H> #include TIME.H> int main () {int i; for (i = 10; i> = 0; i--) {printf ("% i n", i); // Írja be az aktuális 'visszaszámláló' számot Késleltetés (1000); // Várj egy másodpercet} return 0; }

Tippek

  • Egy ezredmásodperc 1/1000 másodperc.
  • A fenti algoritmus bármilyen hurokstruktúrával megvalósítható, amelyet a ""; null operátor követ, mint miközben közben vagy közben.

Figyelmeztetések

  • Ez a módszer általában haszontalan a triviális programon kívül. Ennek eléréséhez általában időzítőt vagy eseményvezérelt megközelítést kell használni. Ellenkező esetben a program nem reagál a késleltetési idő alatt, és ez nem mindig jó. Ezenkívül az N kiválasztása egy hurokban, ha a parancsok végrehajtásától függ, váratlan eredményeket hozhat. Nyilvánvaló, hogy az eredeti szerző soha nem hallott optimalizáló fordítóról ... képes optimalizálni egy egész ciklust, ha valójában nem tesz semmit!
  • Ne feledje, hogy a "for-loop" módszer használatakor nagyon nagy intervallumot vehet igénybe az i, mivel egy üres utasítás nagyon gyors. Az ilyen nagy számok nem férnek el egy egész típusú típusban.
  • For-loop használata esetén a fordító optimalizálhatja a kódot, és mivel a ciklus nem tesz semmit, távolítsa el. Ez nem történik meg a Delay () használatakor.