Kuidas programmi käivitamist C -s edasi lükata

Autor: Joan Hall
Loomise Kuupäev: 28 Veebruar 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Kuidas programmi käivitamist C -s edasi lükata - Ühiskond
Kuidas programmi käivitamist C -s edasi lükata - Ühiskond

Sisu

Kas olete kunagi tahtnud luua C -programmi, mis ootab teatud aja? Saate kohandada aja andmise viisi "lendab mööda", näiteks: kui kuvatakse mängu hüpikleht (märguanne või vihje). ... OK, siin on mõned võimalused "seisma jääva" programmi loomiseks, loe edasi ...

Sammud

  1. 1 Laske protsessoril mõnda aega töötada, ilma et see põhjustaks jälgitavat sündmust.
  2. 2 Ärge tehke selle viivituse ajal muid toiminguid, et tekitada lihtne viivitus.

Meetod 1: 2: silmustehnika

  1. 1 Kasutage viivituse rakendamiseks tüüpilist tsüklit "jaoks", millele järgneb tühi avaldus.
  2. 2 Kirjutage näiteks järgmiselt:
    • jaoks (i = 1; i100; i ++);
    • Operaator järgneb ";" sunnib arvutit ilma märgatava sündmuseta 100 korda loopima. See tekitab ainult ajaviite.

Meetod 2/2: "une ()" tehnika

  1. 1 Kasutage und (). Funktsiooni nimetatakse uniseks (int ms), mis on deklareeritud TIME.H>, mis paneb programmi ootama teatud aja millisekundites.
  2. 2 Enne int main () lisage oma programmi järgmine rida:
    • #kaasa TIME.H>
  3. 3 Kleepige oma programmi viivitamiseks vajalikule kohale:
    • uni (1000);
    • Muutke "1000" millisekundite arvuks, mida soovite oodata (näiteks kui soovite 2 -sekundilist viivitust, asendage see "2000" -ga.
    • Nõuanne. Mõnes süsteemis võidakse väärtus määrata sekundites, mitte millisekundites. Seetõttu pole mõnikord 1000 1 sekund, vaid tegelikult 1000 sekundit.

Näidiskood

Programm, mis ootab teatud arvu sekundeid:



#include stdio.h> #include dos.h> int main () {int del; // Viiteperiood printf ("Sisesta viivitusaeg (sekundites):"); scanf ("% i" ,? del); del * = 1000; // Korrutage see 1000 -ga, et teisendada millisekunditeks Delay (del); // Viivitus. printf ("Valmis"); tagasitulek 0; }


Programm, mis loendab 10 -lt 0 -le:


#include STDIO.H> #include TIME.H> int main () {int i; jaoks (i = 10; i> = 0; i--) {printf ("% i n", i); // Kirjutage praegune 'loenduri' number Delay (1000); // Oota sekund} return 0; }

Näpunäiteid

  • Millisekund on 1/1000 sekundit.
  • Ülaltoodud algoritmi saab rakendada mis tahes silmusstruktuuri abil, millele järgneb nulloperaator - "; nagu kasutades samas või tegemise ajal silmuseid.

Hoiatused

  • See meetod on üldiselt kasutu muuks kui tühiseks programmiks. Üldiselt kasutage selle saavutamiseks taimerit või sündmuspõhist lähenemist. Vastasel juhul ei reageeri programm viivitusaja jooksul ja see pole alati hea. Samuti võib N -i valimine silmuses, kui see sõltub käskude täitmisest, anda ootamatuid tulemusi. Ilmselt pole algne autor kunagi kuulnud optimeerivast kompilaatorist ... see võib optimeerida kogu silmust, kui see tegelikult midagi ei tee!
  • Pange tähele, et "for-loop" meetodi kasutamisel võib i jaoks kuluda väga suur intervall, kuna tühi avaldus on väga kiire. Nii suured numbrid ei pruugi sobida täisarvutüüpi.
  • Kui kasutate for-loop, võib kompilaator koodi optimeerida ja kuna loop ei tee midagi, eemaldage see. Seda ei juhtu Delay () kasutamisel.