Wku

Hur att skjuta i C

Har du någonsin vill göra en C-programmet väntar en viss tid?
Du kan ställa in en teknik för att ge tid att kryssa bort, till exempel: när du visar en startsida (ett meddelande eller tips) för ett spel.
Okej, här är några sätt att göra programmet "stå stilla", läs vidare...

Steg

Hur att skjuta i C. Gör din CPU arbete under en längre tid utan att någon märkbar händelse.
Hur att skjuta i C. Gör din CPU arbete under en längre tid utan att någon märkbar händelse.
  1. 1
    Gör din CPU arbete under en längre tid utan att någon märkbar händelse.
  2. 2
    Gör ingen annan verksamhet under denna försening, i syfte att skapa en enkel tidsfördröjning.

Den "för-loop"-teknik

  1. 1
    Använd en typisk "för" loop följt av en null uttalande att genomföra tidsfördröjning.
  2. 2
    Skriv följande, för ett exempel:
    • for (i = 1; i <100, i + +);

</ 100> # * Uttalandet följs av "," gör datorn kör slingan 100 gånger utan någon märkbar händelse. Det skapar bara en tidsfördröjning.

Den "sleep ()" teknik

  1. 1
    Använd sova () funktionen kallas sömn (int ms) deklarerade i <time.H> vilket gör programmet väntar på tiden i specificerade millisekunder.
  2. 2
    Inkludera följande rad i ditt program innan "int main ()":
    • # Include <TIME.H>
  3. 3
    Infoga, varhelst du behöver ditt program för att göra en fördröjning:
    • sleep (1000);
    • Ändra "1000" till det antal millisekunder du vill vänta (till exempel, om du vill göra en 2 sekunders fördröjning, ersätta det med 2000.
    • Tips: På vissa system värdet kan hänvisa till sekunder, istället för millisekunder. Så ibland 1000 är inte en sekund, men i själva verket 1000 sekunder.

Provkod

Ett program som väntar en viss mängd av sekunder:

  # Include <stdio.h>  # Include <dos.h>    int main ()  {  int del, / / Fördröjningsperioden  printf ("Skriv in väntetid (i sekunder):");  scanf ("% i", och del);   del * = 1000; / / Multiplicera det med 1000 för att konvertera till millisekunder  Delay (del), / / Delay.  printf ("Klar.");  återvända 0;  } 


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

  # Include <stdio.h>  # Include <TIME.H>    int main ()  {  int i;  for (i = 10; i> = 0, I -)  {  printf ("% i \ n", i); / / Skriv det nuvarande "nedräkningen" nummer  Delay (1000), / / Vänta en sekund  }  återvända 0;  } 

Tips

  • En millisekund är 1/1000 av en sekund.
  • Ovanstående logik kan implementeras genom att använda någon looping struktur följt av en null uttalande-",", som genom att använda samtidigt eller göra-while-slingor.

Varningar

  • Denna teknik är allmänt värdelös i någonting annat än ett trivialt program. I allmänhet, använda timers eller en händelsestyrd strategi för att genomföra detta. Annars kommer programmet att sluta svara under fördröjningstiden, och det är inte alltid en bra sak. Dessutom väljer N i din loop, om det beror på instruktionsexekvering kan ha överraskande resultat. Tydligen den ursprungliga författaren aldrig har hört talas om ett optimerande kompilator... det kan optimera bort hela slingan om det faktiskt gör ingenting!
  • Observera att när du använder for-loop teknik, kan du behöva en mycket stor spännvidd för jag, eftersom en tom satsen körs mycket snabbt. Sådana stora siffrorna kanske inte passar i ett heltal typ.
  • Om du använder for-loop, kan kompilatorn optimera koden, och eftersom slingan gör ingenting, ta bort det. Detta händer inte när man använder Delay ().