Har du noen gang ønsket å få et C -program til å vente en viss tid?
Du kan sette opp en teknikk for å gi tid til å krysse av, for eksempel: når du viser en sprutside (et varsel eller hint) for et spill.
Ok, her er noen måter å få programmet til å "stå stille", les videre …
Trinn
Trinn 1. Få CPUen til å fungere en stund uten å produsere noen merkbar hendelse
Trinn 2. Gjør ingen andre operasjoner under forsinkelsen, for å lage en enkel tidsforsinkelse
Metode 1 av 2: "For-loop" -teknikken
Trinn 1. Bruk en typisk "for" -løkke etterfulgt av en null -setning for å implementere tidsforsinkelse
Trinn 2. Skriv som følger, for et eksempel:
- for (i = 1; i <100; i ++);
- Erklæringen etterfulgt av ";" får datamaskinen til å kjøre sløyfen 100 ganger uten merkbar hendelse. Det skaper bare en tidsforsinkelse.
Metode 2 av 2: "Sleep ()" -teknikken
Trinn 1. Bruk sleep () Funksjonen kalt sleep (int ms) deklarert som får programmet til å vente på den angitte tiden i millisekunder
Trinn 2. Inkluder følgende linje i programmet før "int main ()":
#inkludere
Trinn 3. Sett inn, uansett hvor du trenger programmet for å gjøre en forsinkelse:
- søvn (1000);
- Endre "1000" til antall millisekunder du vil vente (for eksempel hvis du vil gjøre en forsinkelse på 2 sekunder, bytt den ut med "2000".
- Tips: På noen systemer kan verdien referere til sekunder, i stedet for millisekunder. Så noen ganger er 1000 ikke ett sekund, men faktisk 1000 sekunder.
Tips
- Ovenstående logikk kan implementeres ved å bruke en hvilken som helst looping-struktur etterfulgt av en null-setning- ";", for eksempel ved å bruke while eller do-while-sløyfer.
- Et millisekund er 1/1000 sekund.
Advarsler
- Denne teknikken er generelt ubrukelig i alt annet enn et trivielt program. Generelt, bruk tidtakere eller en hendelsesdrevet tilnærming for å implementere dette. Ellers reagerer programmet ikke i løpet av forsinkelsen, og det er ikke alltid bra. Dessuten kan valg av N i løkken din, hvis det avhenger av utførelse av instruksjoner, ha overraskende resultater. Tilsynelatende har den opprinnelige forfatteren aldri hørt om en optimaliserende kompilator … den kan optimalisere hele løkken hvis den faktisk ikke gjør noe!
- Hvis du bruker forløkken, kan kompilatoren optimalisere koden, og fordi løkken ikke gjør noe, kan du fjerne den. Dette skjer ikke når du bruker forsinkelse ().
- Vær oppmerksom på at når du bruker for-loop-teknikken, kan du trenge et veldig stort spenn for i, fordi en tom setning utføres veldig raskt. Slike store tall passer kanskje ikke i en heltallstype.