Sådan forsinkes programkørsel i C

Forfatter: Joan Hall
Oprettelsesdato: 28 Februar 2021
Opdateringsdato: 1 Juli 2024
Anonim
Sådan forsinkes programkørsel i C - Samfund
Sådan forsinkes programkørsel i C - Samfund

Indhold

Har du nogensinde ønsket at oprette et C -program, der venter et bestemt stykke tid? Du kan tilpasse måden at give tiden "flyve forbi", for eksempel: når du viser en pop op-side (anmeldelse eller tip) til spillet. ... OK, her er nogle måder at oprette et "stå stille" program, læs videre ...

Trin

  1. 1 Lad din processor køre et stykke tid uden at forårsage en observerbar hændelse.
  2. 2 Udfør ikke andre handlinger under denne forsinkelse for at oprette en simpel tidsforsinkelse.

Metode 1 af 2: For-loop-teknik

  1. 1 Brug en typisk "for" sløjfe efterfulgt af en tom sætning for at implementere en forsinkelse.
  2. 2 Skriv f.eks. Som følger:
    • for (i = 1; i100; i ++);
    • Operatøren følger ";" tvinger computeren til at sløjfe 100 gange uden en mærkbar begivenhed. Det skaber kun en tidsforsinkelse.

Metode 2 af 2: "Sleep ()" teknikken

  1. 1 Brug søvn (). Funktionen kaldes sleep (int ms), erklæret i TIME.H>, hvilket får programmet til at vente i en bestemt tid i millisekunder.
  2. 2 Medtag følgende linje i dit program før int main ():
    • #include TIME.H>
  3. 3 Indsæt om nødvendigt for at få dit program til at forsinke:
    • søvn (1000);
    • Skift "1000" til det antal millisekunder, du vil vente (f.eks. Hvis du vil foretage en forsinkelse på 2 sekunder, skal du erstatte det med "2000".
    • Tip: På nogle systemer kan værdien angives i sekunder i stedet for millisekunder. Derfor er nogle gange 1000 ikke 1 sekund, men faktisk 1000 sekunder.

Prøvekode

Et program, der venter et bestemt antal sekunder:



#include stdio.h> #include dos.h> int main () {int del; // Forsinkelsesperioden printf ("Indtast forsinkelsestiden (i sekunder):"); scanf ("% i" ,? del); del * = 1000; // Multiplicer det med 1000 for at konvertere til millisekunder Delay (del); // Forsinkelse. printf ("Udført."); returnere 0; }


Et program, der tæller ned fra 10 til 0:


#include STDIO.H> #include TIME.H> int main () {int i; for (i = 10; i> = 0; i--) {printf ("% i n", i); // Skriv det aktuelle 'nedtællingsnummer' forsinkelse (1000); // Vent et sekund} returner 0; }

Tips

  • Et millisekund er 1/1000 sekund.
  • Ovenstående algoritme kan implementeres ved hjælp af en hvilken som helst looping -struktur efterfulgt af null -operatøren - "; som ved hjælp af while eller do -while -sløjfer.

Advarsler

  • Denne metode er generelt ubrugelig til andet end et trivielt program. Brug generelt timere eller en hændelsesdrevet tilgang til at opnå dette. Ellers reagerer programmet ikke i løbet af forsinkelsestiden, og det er ikke altid en god ting. Også at vælge N i en loop, hvis det afhænger af udførelsen af ​​kommandoer, kan have uventede resultater. Tilsyneladende har den originale forfatter aldrig hørt om en optimerende compiler ... den kan optimere en hel sløjfe, hvis den faktisk ikke gør noget!
  • Bemærk, at når du bruger "for-loop" -metoden, kan det tage et meget stort interval for i, da en tom sætning er meget hurtig. Sådanne store tal passer muligvis ikke ind i en heltalstype.
  • Hvis du bruger en for-loop, kan kompilatoren optimere koden, og da loop ikke gør noget, skal du fjerne den. Dette sker ikke, når du bruger Delay ().