Conţinut
- Pași
- Metoda 1 din 2: tehnica For-loop
- Metoda 2 din 2: Tehnica „sleep ()”
- Cod simplu
- sfaturi
- Avertizări
Ați dorit vreodată să creați un program C care așteaptă o anumită perioadă de timp? Puteți personaliza modul de a oferi timpului „zburați”, de exemplu: atunci când afișați o pagină pop-up (notificare sau indiciu) pentru joc. ... Bine, iată câteva modalități de a crea un program "stați pe loc", citiți mai departe ...
Pași
- 1 Lăsați procesorul să ruleze o vreme fără a provoca un eveniment observabil.
- 2 Nu efectuați alte operații în timpul acestei întârzieri pentru a crea o întârziere simplă.
Metoda 1 din 2: tehnica For-loop
- 1 Utilizați o buclă tipică „pentru” urmată de o instrucțiune goală pentru a implementa o întârziere.
- 2 Scrieți după cum urmează, de exemplu:
- pentru (i = 1; i100; i ++);
- Operatorul care urmează „;” forțează computerul să se bucle de 100 de ori fără un eveniment vizibil. Creează doar o întârziere.
Metoda 2 din 2: Tehnica „sleep ()”
- 1 Folosiți somnul (). Funcția se numește sleep (int ms), declarată în TIME.H>, ceea ce face ca programul să aștepte o anumită perioadă de timp în milisecunde.
- 2 Includeți următoarea linie în program înainte de int main ():
- #include TIME.H>
- 3 Lipiți acolo unde este necesar pentru ca programul să întârzie:
- somn (1000);
- Schimbați „1000” la numărul de milisecunde pe care doriți să îl așteptați (de exemplu, dacă doriți să faceți o întârziere de 2 secunde, înlocuiți-l cu „2000”.
- Sfat: pe unele sisteme, valoarea poate fi specificată în secunde în loc de milisecunde. Prin urmare, uneori 1000 nu reprezintă 1 secundă, ci de fapt 1000 de secunde.
Cod simplu
Un program care așteaptă un anumit număr de secunde:
#include stdio.h> #include dos.h> int main () {int del; // Perioada de întârziere printf ("Introduceți timpul de întârziere (în secunde):"); scanf („% i” ,? del); del * = 1000; // Înmulțiți-l cu 1000 pentru a-l converti în milisecunde Întârziere (del); // Întârziere. printf („Terminat”); retur 0; }
Un program care numără înapoi de la 10 la 0:
#include STDIO.H> #include TIME.H> int main () {int i; for (i = 10; i> = 0; i--) {printf ("% i n", i); // Scrieți numărul curent de „numărătoare inversă” Întârziere (1000); // Așteptați o secundă} returnează 0; }
sfaturi
- O milisecundă este 1/1000 de secundă.
- Algoritmul de mai sus poate fi implementat folosind orice structură de buclă urmată de operatorul nul - "; ca folosind bucle while sau do-while.
Avertizări
- Această metodă este în general inutilă pentru orice altceva decât un program banal. În general, utilizați temporizatoare sau o abordare bazată pe evenimente pentru a realiza acest lucru. În caz contrar, programul nu va mai răspunde în timpul întârzierii și acest lucru nu este întotdeauna un lucru bun. De asemenea, alegerea lui N într-o buclă, dacă depinde de executarea comenzilor, poate avea rezultate neașteptate. Se pare că autorul original nu a auzit niciodată de un compilator de optimizare ... poate optimiza o buclă întreagă dacă de fapt nu face nimic!
- Rețineți că atunci când utilizați metoda „for-loop”, poate dura un interval foarte mare pentru i, deoarece o instrucțiune goală este foarte rapidă. Astfel de numere mari pot să nu se încadreze într-un tip întreg.
- Dacă utilizați o buclă for, compilatorul poate optimiza codul și, deoarece bucla nu face nimic, îl eliminați. Acest lucru nu se întâmplă atunci când se utilizează Delay ().