Come ritardare l'esecuzione del programma in Do

Autore: Joan Hall
Data Della Creazione: 28 Febbraio 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
How to Speed Up Your Wordpress Website: Make Wordpress Faster 2021
Video: How to Speed Up Your Wordpress Website: Make Wordpress Faster 2021

Contenuto

Hai mai desiderato creare un programma C che aspetta un certo periodo di tempo? Puoi personalizzare il modo per far "volare" l'ora, ad esempio: quando mostri una pagina pop-up (notifica o suggerimento) per il gioco. ... OK, ecco alcuni modi per creare un programma "stai fermo", continua a leggere...

Passi

  1. 1 Lascia che il tuo processore funzioni per un po' senza causare un evento osservabile.
  2. 2 Non eseguire altre operazioni durante questo ritardo per creare un semplice ritardo.

Metodo 1 di 2: tecnica del ciclo For

  1. 1 Utilizzare un tipico ciclo "for" seguito da un'istruzione vuota per implementare un ritardo.
  2. 2 Scrivi come segue, ad esempio:
    • per (i = 1; i100; i++);
    • L'operatore che segue il ";" forza il computer a eseguire un ciclo 100 volte senza che si verifichi un evento evidente. Crea solo un ritardo temporale.

Metodo 2 di 2: La tecnica "sleep()"

  1. 1 Usa il sonno (). La funzione si chiama sleep (int ms), dichiarata in TIME.H>, che fa attendere il programma per un periodo di tempo specificato in millisecondi.
  2. 2 Includere la seguente riga nel programma prima di int main():
    • #include TIME.H>
  3. 3 Incolla dove necessario per ritardare il tuo programma:
    • sonno (1000);
    • Modificare "1000" con il numero di millisecondi che si desidera attendere (ad esempio, se si desidera effettuare un ritardo di 2 secondi, sostituirlo con "2000".
    • Suggerimento: su alcuni sistemi, il valore può essere specificato in secondi anziché in millisecondi. Pertanto, a volte 1000 non è 1 secondo, ma in realtà 1000 secondi.

Codice di esempio

Un programma che attende un certo numero di secondi:



#include stdio.h> #include dos.h> int main() {int del; // Il periodo di ritardo printf ("Inserisci il tempo di ritardo (in secondi):"); scanf ("% io",? del); del * = 1000; // Moltiplicalo per 1000 per convertirlo in millisecondi Delay (del); // Ritardo. printf ("Fatto."); restituisce 0; }


Un programma che conta alla rovescia da 10 a 0:


#include STDIO.H> #include TIME.H> int main() {int i; for (i = 10; i> = 0; i--) {printf ("% i n", i); // Scrive il numero di 'conto alla rovescia' corrente Delay (1000); // Aspetta un secondo} return 0; }

Consigli

  • Un millisecondo è 1/1000 di secondo.
  • L'algoritmo di cui sopra può essere implementato utilizzando qualsiasi struttura di loop seguita dall'operatore null - "; come l'utilizzo di loop while o do-while.

Avvertenze

  • Questo metodo è generalmente inutile per qualcosa di diverso da un banale programma. In generale, utilizzare timer o un approccio basato sugli eventi per ottenere ciò. Altrimenti, il programma non risponderà durante il tempo di ritardo e questa non è sempre una buona cosa. Inoltre, la scelta di N in un ciclo, se dipende dall'esecuzione dei comandi, può avere risultati imprevisti. Apparentemente l'autore originale non ha mai sentito parlare di un compilatore ottimizzatore ... può ottimizzare un intero ciclo se in realtà non fa nulla!
  • Si noti che quando si utilizza il metodo "for-loop", potrebbe essere necessario un intervallo molto ampio per i, poiché un'istruzione vuota è molto veloce. Numeri così grandi potrebbero non rientrare in un tipo intero.
  • Se usi un ciclo for, il compilatore può ottimizzare il codice e, poiché il ciclo non fa nulla, rimuoverlo. Ciò non accade quando si utilizza Delay().