在C中为程序添加时间戳

时间:2012-01-20 01:36:33

标签: c time

我已经获得了两套C代码,并且我被要求使用这段代码:

#include <stdio.h>

void main() {
  int n, c=0;
  scanf("%d", &n);
  while(n != 1) {
    c++;
    if(n%2 == 0)
      n = n/2;
    else
      n = 3*n + 1;
  }
  printf("n = %d\n", n);
  printf("iterations = %d\n", c);
}

然后我必须使用此代码在输入语句之后和程序结束之前向上面的程序添加时间戳。我必须使用它来计算程序执行所需的时钟周期数和秒数。

#include <stdio.h>
#include <time.h>

void sleep2(int wait) {
  clock_t goal; // clock_t defined in <time.h>
  goal = wait * CLOCKS_PER_SEC + clock();
  while( goal > clock() )
    ;
}

main() {
  int delay;
  printf("Enter an integer ...\n");
  scanf("%d", &delay);
  printf("To be delayed for %d seconds ...\n", delay);
  sleep2(delay);
  printf("expired\n");
}

我觉得这应该很简单,但我不确定如何使用代码加入时间戳。有人可以帮我解决这些问题,还是让我开始使用?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果只需要准确到第二次使用时间。然后你可以做类似的事情:

 time_t startT = time(null);
 //stuff
 time_t finalTime = time(null) - startT;

如果您需要更高的准确度,请参阅此帖子: https://stackoverflow.com/a/275231/1153203

答案 1 :(得分:1)

基本上这样做:

clock_t start;
clock_t elapsed;

start = clock();
...
elapsed = clock() - start;

elapsed将是'ticks'中经过的时间,其中每秒有CLOCKS_PER_SEC个刻度。