Come Inserire dei Ritardi (o Delay) in un Programma C

Hai bisogno di creare dei ritardi tra un’istruzione e l’altra di un programma C? Ci sono vari metodi per fare ciò, continua a leggere...

Tecnica "loop for"

  1. Usa un tipico loop "for" seguito da un’istruzione null per implementare un ritardo
  2. Ad esempio, scrivi questo codice:
    • for (i=1 ; i<100 ; i++) ;

Tecnica "sleep()"

  1. Usa la funzione sleep() (int ms) dichiarata in , che serve a creare un ritardo espresso in millisecondi.
  2. Includi la riga seguente nel tuo programma prima di "int main()":
    • #include
  3. Nel punto del codice in cui vuoi che venga creato il ritardo scrivi:
    • sleep(1000);
    • Cambia a tuo piacimento il numero all’interno delle parentesi a seconda della lunghezza dell ritardo che vuoi creare. Il numero rappresenta i millisecondi di ritardo. Ad esempio, se desideri creare un ritardo di 2 secondi, inserisci 2000.
    • Suggerimento: Su alcuni sistemi il valore potrebbe invece basarsi sui secondi, invece dei millisecondi. Dunque, a volte 1000 non rappresenta un lasso di tempo di 1 secondo ma bensì 1000 secondi.

Consigli

  • La logica di cui sopra può essere implementata usando qualsiasi struttura loop seguita da un’istruzione nulla – “;”, quindi è possibile implementarla anche in loop while e do
  • Un millisecondo rappresenta un millesimo di secondo.

Avvertenze

  • Questa tecnica non viene generalmente utilizzata in nient’altro che programmi a scopo didattico. In generale, vengono usati timer o implementazioni causa-effetto. Questo perché un programma che utilizza questi ritardi potrebbe smettere di rispondere durante l’esecuzione dell’istruzione delay, e questa non è sempre una buona cosa. Oltretutto, scegliere N nel tuo loop, se dipende dall’esecuzione dell’istruzione, potrebbe avere risultati imprevedibili. Apparentemente l’autore originale del codice non hai mai sentito parlare di ottimizzazione. Il compliatore, infatti, nel tentativo di ottimizzare il codice potrebbe cancellare l’intero loop se questo non fa niente di utile!
  • Notare che quando si utilizza la tecnica del loop for, potresti aver bisogno di inserire un numero molto grande per l’i, perché un’istruzione vuota viene eseguita molto velocemente. Questi numeri potrebbero non riuscire ad entrare nemmeno in una variabile integer, o intero.
  • Se hai deciso di utilizzare il for-loop, il compilatore potrebbe ottimizzare il codice rimuovendo l’istruzione, dato che essa non esegue nessuna vera e propria istruzione. Ciò non succede quando si utilizza delay().
Information
Users of Guests are not allowed to comment this publication.