Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219

    [c]Prendere il tempo con precisione

    Salve a tutti,mi serviva una funzione per stoppare il tempo,ne ho scritta una con precisione in secondi:

    codice:
    void sleep(int sec)
    {
        size_t tempo,tempo_max;
        tempo=time(NULL);
        tempo_max=tempo+sec;
        while(tempo<tempo_max)
          tempo=time(NULL);
    }
    Se scrivo ad esempio sleep(1) il programma si ferma per un secondo,ma visto che la funzione time(NULL) di time.h ritorna interi,come fare a imlementarne una con la precisione di un double o almeno di un float?

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Ok,ho trovato una funzione di time.h che legge i clock del processore,ecco la funzione per stoppare il tempo (dipende dalal velocità per processore):
    codice:
    void wait(clock_t num)
    {
        clock_t timer,max=clock()+num;
        for(timer=clock();timer<mac;timer=clock());
    }
    Ovviamente dipende anche dalla priorità del processo creato,con la main se non specificato è __cdecl int main (int agrc,char **argv),per esempio in windows.h per creare un processo con priorià minore si può specificare: __stdcall WINAPI WinMain.

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Anzi,ho trovato la funzione Sleep di windows.h,con:
    codice:
    Sleep(50);
    Mette in pausa il processo e assegna la cpu agli altri thread.
    Il valore è in millisecondi,mi sento una bollicina di sodio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.