Alguna vegada heu volgut esperar un programa C durant un temps determinat?
Podeu configurar una tècnica que permeti que es perdi el temps, per exemple: quan es mostra una pàgina de presentació (un avís o una pista) per a un joc.
D’acord, aquí teniu algunes maneres de fer que el programa “quedi quiet”, seguiu llegint …
Passos
Pas 1. Feu que la vostra CPU funcioni durant un temps sense produir cap esdeveniment notable
Pas 2. No feu cap altra operació durant aquest retard, per tal de crear un simple retard de temps
Mètode 1 de 2: la tècnica "for-loop"
Pas 1. Utilitzeu un bucle típic "per" seguit d'una declaració nul·la per implementar un retard de temps
Pas 2. Escriviu el següent, per a un exemple:
- per a (i = 1; i <100; i ++);
- La declaració seguida de la frase ";" fa que l'ordinador executi el bucle 100 vegades sense cap esdeveniment notable. Simplement crea un retard de temps.
Mètode 2 de 2: la tècnica "sleep ()"
Pas 1. Utilitzeu sleep () La funció anomenada sleep (int ms) declarada en què fa esperar el programa el temps en mil·lisegons especificat
Pas 2. Incloeu la línia següent al programa abans de "int main ()":
#incloure
Pas 3. Inseriu, allà on necessiteu que el vostre programa faci un retard:
- dormir (1000);
- Canvieu el "1000" pel nombre de mil·lisegons que voleu esperar (per exemple, si voleu fer un retard de 2 segons, substituïu-lo per "2000".
- Consell: en alguns sistemes, el valor pot referir-se a segons, en lloc de mil·lisegons. De manera que de vegades 1000 no són un segon, però, de fet, 1000 segons.
Consells
- La lògica anterior es pot implementar utilitzant qualsevol estructura de bucle seguida d'una declaració nul·la ";", com fent servir bucles while o do-while.
- Un mil·lisegon és 1/1000 de segon.
Advertiments
- Aquesta tècnica és generalment inútil en qualsevol cosa que no sigui un programa trivial. En general, utilitzeu temporitzadors o un enfocament basat en esdeveniments per implementar-ho. En cas contrari, el programa deixarà de respondre durant el temps de retard, i això no sempre és bo. A més, triar N al bucle, si depèn de l'execució de la instrucció, pot tenir resultats sorprenents. Pel que sembla, l'autor original mai no ha sentit parlar d'un compilador d'optimització … pot optimitzar tot el bucle si realment no fa res.
- Si utilitzeu el bucle for, el compilador pot optimitzar el codi i, com que el bucle no fa res, traieu-lo. Això no passa quan s'utilitza delay ().
- Tingueu en compte que quan utilitzeu la tècnica de bucle, és possible que necessiteu un interval molt gran per a i, perquè una instrucció buida s'executa molt ràpidament. És possible que aquests números tan grans no encaixin en un tipus enter.