C/Development/Timer

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Display a software timer

<source lang="cpp">

  1. include <stdio.h>
  2. define DELAY 128000

struct my_time {

 int hours;
 int minutes;
 int seconds;

} ;

int main(void) {

 struct my_time systime;
 if(systime.seconds==60) {
   systime.seconds = 0;
   systime.minutes++;
 }
 if(systime.minutes==60) {
   systime.minutes = 0;
   systime.hours++;
 }
 if(systime.hours==24)
    systime.hours = 0;
 printf("\n%02d:", systime.hours);
 printf("\n%02d:", systime.minutes);
 printf("\n%02d\n", systime.seconds);
 return 0;

}

      </source>


Test our timer function

<source lang="cpp"> /* Beginning C, Third Edition

By Ivor Horton
ISBN: 1-59059-253-0
Published: Apr 2004
Publisher: apress
  • /
  1. include <stdio.h>
  2. include <time.h>

void main() {

 long count = 100000000;          /* Number of loop iterations */
 long i = 0;                      /* Loop counter              */
 time_t calendar = 0;             /* Holds calendar time       */
 clock_t now = 0;                 /* Holds initial clock time  */
 int interval = 3;                /* Seconds interval for o/p  */
 int elapsed = 0;                 /* Elapsed clock time secs.  */
 calendar = time(NULL);           /* Get current calendar time */
 now = clock();                   /* Get current clock time    */
 printf("Initial clock time = %d Initial calendar time = %d\n",
                                                      now, calendar);
   
   for(i = 0L ; i<count ; i++)
   {
     elapsed = (clock()-now)/CLOCKS_PER_SEC;
     if(elapsed>=interval)
     {
       interval += 3;
       printf("\nElapsed = %ld seconds  iterations = %ld", elapsed, i);
     }
   }
 printf("\nCPU time for %ld interations is %.2lf seconds\n",
                               count, (double)(clock()-now)/CLOCKS_PER_SEC );
 printf("\Final clock time = %d Final calendar time = %d\n",
                                                      clock(), time(NULL));
 printf("\nElapsed calendar time to execute the program is %lf\n",
                                          difftime(time(NULL), calendar));

}


      </source>