![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](https://a.vvvvvv.in.ua/society/kak-organizovat-zaderzhku-vipolneniya-programmi-v-c-7.webp)
Tartalom
- Lépések
- 1 /2-es módszer: For-loop technika
- 2. módszer 2 -ből: Az "alvás ()" technika
- Mintakód
- Tippek
- Figyelmeztetések
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 Hagyja a processzort egy ideig működni anélkül, hogy megfigyelhető eseményt okozna.
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 A késleltetés megvalósításához használjon tipikus "for" ciklust, majd üres utasítást.
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 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 Írja be a következő sort a programba az int main () előtt:
- #magában foglalja az IDŐT. H>
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.