Heb je ooit een C-programma een bepaalde tijd willen laten wachten?
U kunt een techniek instellen om de tijd te laten wegtikken, bijvoorbeeld: bij het tonen van een splash-pagina (een mededeling of hint) voor een game.
Oké, hier zijn enkele manieren om het programma "stil te laten staan", lees verder…
Stappen
Stap 1. Laat uw CPU enige tijd werken zonder een merkbare gebeurtenis te veroorzaken
Stap 2. Voer geen andere handeling uit tijdens die vertraging, om een eenvoudige vertraging te creëren
Methode 1 van 2: De "for-loop"-techniek
Stap 1. Gebruik een typische "for"-lus gevolgd door een null-instructie om tijdvertraging te implementeren
Stap 2. Schrijf als volgt, bijvoorbeeld:
- voor (i=1; i<100; i++);
- De verklaring gevolgd door de ";" zorgt ervoor dat de computer de lus 100 keer uitvoert zonder enige merkbare gebeurtenis. Het zorgt alleen maar voor vertraging.
Methode 2 van 2: De "slaap()"-techniek
Stap 1. Gebruik sleep() De functie genaamd sleep(int ms) gedeclareerd waarin het programma wacht op de opgegeven tijd in milliseconden
Stap 2. Neem de volgende regel op in uw programma vóór "int main()":
#erbij betrekken
Stap 3. Invoegen, waar je je programma ook nodig hebt om een vertraging te maken:
- slaap (1000);
- Wijzig de "1000" in het aantal milliseconden dat u wilt wachten (als u bijvoorbeeld een vertraging van 2 seconden wilt maken, vervangt u deze door "2000".
- Tip: Op sommige systemen kan de waarde verwijzen naar seconden in plaats van milliseconden. Dus soms is 1000 niet één seconde, maar in feite 1000 seconden.
Tips
- De bovenstaande logica kan worden geïmplementeerd door elke lusstructuur te gebruiken gevolgd door een null-statement-";", zoals door while- of do-while-lussen te gebruiken.
- Een milliseconde is 1/1000 van een seconde.
Waarschuwingen
- Deze techniek is over het algemeen nutteloos in iets anders dan een triviaal programma. Gebruik in het algemeen timers of een gebeurtenisgestuurde aanpak om dit te implementeren. Anders reageert het programma tijdens de vertragingstijd niet meer, en dat is niet altijd een goede zaak. Bovendien kan het kiezen van N in je lus, als het afhangt van de uitvoering van instructies, verrassende resultaten opleveren. Blijkbaar heeft de oorspronkelijke auteur nog nooit gehoord van een optimaliserende compiler… het kan de hele lus optimaliseren als het eigenlijk niets doet!
- Als u de for-loop gebruikt, kan de compiler de code optimaliseren en, omdat de lus niets doet, deze verwijderen. Dit gebeurt niet bij gebruik van delay().
- Merk op dat wanneer je de for-loop-techniek gebruikt, je misschien een heel grote span voor i nodig hebt, omdat een leeg statement erg snel wordt uitgevoerd. Zulke grote getallen passen misschien niet in een geheel getal.