Hai mai voluto far aspettare un programma C per un certo tempo?
È possibile impostare una tecnica per consentire al tempo di scorrere via, ad esempio: quando si mostra una pagina iniziale (un avviso o un suggerimento) per un gioco.
Ok, ecco alcuni modi per "fermare" il programma, continua a leggere…
Passi
Passaggio 1. Fai funzionare la tua CPU per un po' di tempo senza produrre alcun evento evidente
Passaggio 2. Non eseguire altre operazioni durante tale ritardo, al fine di creare un semplice ritardo temporale
Metodo 1 di 2: La tecnica "for-loop"
Passaggio 1. Utilizzare un tipico ciclo "for" seguito da un'istruzione null per implementare il ritardo
Passaggio 2. Scrivi come segue, ad esempio:
- for (i=1; i<100; i++);
- L'istruzione seguita dal ";" fa in modo che il computer esegua il ciclo 100 volte senza alcun evento evidente. Crea solo un ritardo temporale.
Metodo 2 di 2: La tecnica "sleep()"
Passaggio 1. Utilizzare sleep() La funzione denominata sleep(int ms) dichiarata in cui fa attendere il programma per il tempo in millisecondi specificato
Passaggio 2. Includere la seguente riga nel programma prima di "int main()":
#includere
Passaggio 3. Inserisci, ovunque ti serva il tuo programma per effettuare un ritardo:
- sonno(1000);
- Cambia "1000" con il numero di millisecondi che vuoi aspettare (ad esempio, se vuoi fare un ritardo di 2 secondi, sostituiscilo con "2000".
- Suggerimento: su alcuni sistemi il valore potrebbe fare riferimento ai secondi, invece che ai millisecondi. Quindi a volte 1000 non è un secondo, ma, in effetti, 1000 secondi.
Suggerimenti
- La logica di cui sopra può essere implementata utilizzando qualsiasi struttura di ciclo seguita da un'istruzione null-";", come utilizzando i cicli while o do-while.
- Un millisecondo è 1/1000 di secondo.
Avvertenze
- Questa tecnica è generalmente inutile in qualcosa che non sia un banale programma. In generale, utilizzare timer o un approccio basato sugli eventi per implementarlo. Altrimenti il programma non risponderà durante il tempo di ritardo, e questa non è sempre una buona cosa. Inoltre, la scelta di N nel ciclo, se dipende dall'esecuzione dell'istruzione, può avere risultati sorprendenti. Apparentemente l'autore originale non ha mai sentito parlare di un compilatore ottimizzatore … potrebbe ottimizzare l'intero ciclo se in realtà non fa nulla!
- Se stai usando il ciclo for, il compilatore può ottimizzare il codice e, poiché il ciclo non fa nulla, rimuoverlo. Questo non accade quando si usa delay().
- Nota che quando usi la tecnica del ciclo for, potresti aver bisogno di un intervallo molto grande per i, perché un'istruzione vuota viene eseguita molto velocemente. Numeri così grandi potrebbero non rientrare in un tipo intero.