Cum se întârzie executarea programului în C

Autor: Joan Hall
Data Creației: 28 Februarie 2021
Data Actualizării: 1 Iulie 2024
Anonim
Cum se întârzie executarea programului în C - Societate
Cum se întârzie executarea programului în C - Societate

Conţinut

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. 1 Lăsați procesorul să ruleze o vreme fără a provoca un eveniment observabil.
  2. 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. 1 Utilizați o buclă tipică „pentru” urmată de o instrucțiune goală pentru a implementa o întârziere.
  2. 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. 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. 2 Includeți următoarea linie în program înainte de int main ():
    • #include TIME.H>
  3. 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 ().