![Sådan forsinkes programkørsel i C - Samfund Sådan forsinkes programkørsel i C - Samfund](https://a.vvvvvv.in.ua/society/kak-organizovat-zaderzhku-vipolneniya-programmi-v-c-7.webp)
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 Lad din processor køre et stykke tid uden at forårsage en observerbar hændelse.
2 Udfør ikke andre handlinger under denne forsinkelse for at oprette en simpel tidsforsinkelse.
Metode 1 af 2: For-loop-teknik
1 Brug en typisk "for" sløjfe efterfulgt af en tom sætning for at implementere en forsinkelse.
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 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 Medtag følgende linje i dit program før int main ():
- #include TIME.H>
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 ().