Se sei su Linux e non devi implementare questa funzionalità direttamente all'interno del tuo programma, una possibilità è richiamarlo dalla shell tramite il comando time, che cronometrerà il tempo impiegato dal tuo programma, dividendolo in tempo user, kernel e tempo effettivo.
In alternativa puoi usare semplicemente la syscall gettimeofday:
codice:
#include <sys/time.h>
/* ... */
timeval inizio, fine;
/* Inizia a cronometrare da qui */
gettimeofday(&inizio, NULL);
/* ...*/
/* Fine della misurazione */
gettimeofday(&fine, NULL);
double tempoTrascorso=(fine.tv_sec-inizio.tv_sec)+(fine.tv_usec-inizio.tv_usec)/1000000.0;
Sotto Windows puoi fare una cosa analoga con la API GetTickCount (per misurazioni sommarie) o con la QueryPerformanceCounter in abbinata alla QueryPerformanceFrequency (per misurazioni ad alta precisione).