Il sistema che usi per la tua funzione aspetta è anche detto "busy form of waiting", cioè, nonostante il tempo d'attesa sia considerato un tempo morto, la cpu viene impiegata al 100% dal tuo programma.
Questo modo di operare va bene solo in alcuni ambiti (in cui il tempo d'attesa è brevissimo), invece nel tuo conviene implementare un contatore che non consuma (quasi) cpu.
Un possibile schema implementativo è questo
La funzione sleep permette al sistema operativo di cambiare lo stato del programma da running a suspended blocked, in modo tale da non fargli sprecare CPU.codice:void countDown (int secondi){ if (secondi <=0) return; while (secondi > 0){ printf("- %d",secondi); // mostro il contatore discendente sleep(1000); /*il programma dorme per un secondo*/ secondi--; } }

Rispondi quotando