Hur man fördröjer programkörning i C

Författare: Joan Hall
Skapelsedatum: 28 Februari 2021
Uppdatera Datum: 1 Juli 2024
Anonim
Animator vs. Animation IV (original)
Video: Animator vs. Animation IV (original)

Innehåll

Har du någonsin velat skapa ett C -program som väntar en viss tid? Du kan anpassa sättet att ge tiden "flyga förbi", till exempel: när en popup-sida (anmälan eller ledtråd) visas för spelet. ... OK, här är några sätt att skapa ett "stå still" -program, läs vidare ...

Steg

  1. 1 Låt din processor köra ett tag utan att orsaka en observerbar händelse.
  2. 2 Utför inga andra åtgärder under denna fördröjning för att skapa en enkel tidsfördröjning.

Metod 1 av 2: For-loop-teknik

  1. 1 Använd en typisk "för" -slinga följt av en tom sats för att implementera en fördröjning.
  2. 2 Skriv så här, till exempel:
    • för (i = 1; i100; i ++);
    • Operatören som följer ";" tvingar datorn att loopa 100 gånger utan en märkbar händelse. Det skapar bara en tidsfördröjning.

Metod 2 av 2: "Sleep ()" -tekniken

  1. 1 Använd sömn (). Funktionen kallas sömn (int ms), deklarerad i TIME.H>, vilket får programmet att vänta en viss tid i millisekunder.
  2. 2 Inkludera följande rad i ditt program innan int main ():
    • #inkludera TIME.H>
  3. 3 Klistra in vid behov för att göra ditt program försenat:
    • sömn (1000);
    • Ändra "1000" till antalet millisekunder du vill vänta (till exempel om du vill göra en fördröjning på 2 sekunder, ersätt den med "2000".
    • Tips: På vissa system kan värdet anges i sekunder istället för millisekunder. Därför är ibland 1000 inte 1 sekund, utan faktiskt 1000 sekunder.

Exempelkod

Ett program som väntar ett visst antal sekunder:



#include stdio.h> #include dos.h> int main () {int del; // Fördröjningsperioden printf ("Ange fördröjningstiden (i sekunder):"); scanf ("% i" ,? del); del * = 1000; // Multiplicera det med 1000 för att konvertera till millisekunder Delay (del); // Fördröjning. printf ("Klart."); returnera 0; }


Ett program som räknar ner från 10 till 0:


#include STDIO.H> #include TIME.H> int main () {int i; för (i = 10; i> = 0; i--) {printf ("% i n", i); // Skriv det aktuella 'nedräkningsnumret' Fördröjning (1000); // Vänta en sekund} returnera 0; }

Tips

  • En millisekund är 1/1000 sekund.
  • Ovanstående algoritm kan implementeras med valfri looping -struktur följt av null -operatören - "; som om man använder medan eller gör -medan -slingor.

Varningar

  • Denna metod är i allmänhet värdelös för något annat än ett trivialt program. Använd i allmänhet timers eller ett händelsebaserat tillvägagångssätt för att uppnå detta. Annars svarar programmet inte under fördröjningstiden och det är inte alltid bra. Att välja N i en loop, om det beror på utförandet av kommandon, kan också ge oväntade resultat. Uppenbarligen har originalförfattaren aldrig hört talas om en optimerande kompilator ... den kan optimera en hel slinga om den faktiskt inte gör någonting!
  • Observera att när du använder "for-loop" -metoden kan det ta ett mycket stort intervall för i, eftersom en tom sats är mycket snabb. Sådana stora tal kanske inte passar in i en heltalstyp.
  • Om du använder en for-loop kan kompilatorn optimera koden, och eftersom slingan inte gör något tar du bort den. Detta händer inte när du använder Delay ().