t用法c语言编程,c语言中,计算时间时,clock_t的用法

得分:10

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

time_t  time(time_t  *t);

其中time_t类型就是long类型,在time.h中已经声明。

time函数返回一个长整数,其值以秒为单位。2次调用此函数,它们返回值的差,即为2次调用之间的时间差(秒数)。使用时,参数可使用空指针。

举一个简单的例子:

#include "stdafx.h"

#include

#include

#include

int main()

{

time_t  t1, t2;

int interval;

t1 = time(NULL);

for (int i = 0; i < 30000; i++)

printf("%d\n",i);

t2 = time(NULL);

interval = t2 - t1;

printf("%d\n", interval);

system("pause");

return 0;

}

这个程序的作用是输出“输出3万次”的时间。

需要注意的是time()返回值得单位是秒,只能进行最小以秒为单位的时间控制。

3.4.3.2 localtime函数及应用

接下来我们介绍localtime():

函数localtime可以把用长整型数值表示的时间变为年、月、日、星期、小时、分、秒等。其原型(在time.h中)是:

struct tm *localtime(time_t  *t);

返回值是指向struct tm结构类型的指针。

结构类型struct tm已经在time.h中声明,内容是:

struct tm

{

int tm_sec;        //  秒

int tm_min;       //  分

int tm_hour;       //  小时

int tm_mday;      //  日

int tm_mon;       //  月

int tm_year;       //  年

int tm_wday;      //  星期几(0表示星期天)

int tm_yday;       //  本年天数

int tm_isdst;       //  是否使用了夏时制

};

函数参数是一个指针,指向一个存放用长整型数值表示的时间的变量,通常是指向time函数的返回值。至于为什么要用time的返回值,因为time函数返回的是从1970年1月1日00:00:00到现在的此时此刻所经过的秒数。所以localtime函数只是将这个数值计算成结构体里的变量并赋给结构体,因为time()的最小分度是秒,所以localtime()最小分度也是秒。至于localtime()对于课设的作用,可以在存档的时候记个时间吧。

3.4.3.3 clock函数及应用

time函数是获取系统的实际时间,而clock函数是获取进程使用的cpu时间单元总数。

函数原型:clock_t  clock(void);

原型在:time.h 头文件中

功能:用于测试2次调用之间的时间间隔。

返回值类型:clock_t,(实际就是long类型)已经在头文件中声明,程序中可直接使用。

返回值:从程序运行时到本函数被调用经过的处理器时间。此值除以CLOCKS_PER_SEC(即18.2,已经在头文件中声明)则换算为秒数。

#include "stdafx.h"

#include

#include

#include

void isleep(clock_t wait);

void main(void)

{

long    i = 60000000L;

clock_t start, finish;

double  duration;

// Delay for a specified time.

printf("Delay for three seconds\n");

isleep((clock_t)3 * CLOCKS_PER_SEC);

printf("Done!\n");

//* Measure the duration of an event.

printf("Time to do %ld empty loops is ", i);

start = clock();

printf("%ld\n", start);

while (i--)

;

finish = clock();

printf("%ld\n", finish);

duration = (double)(finish - start) / CLOCKS_PER_SEC;

printf("%10.2f seconds\n", duration);

}

// Pauses for a specified number of milliseconds.

void isleep(clock_t wait)

{

clock_t goal;

goal = wait + clock();

while (goal > clock())

;

}

其中,2次调用clock()函数获得的返回值的差再除以CLOCKS_PER_SEC,就得到2次调用clock()函数所间隔的秒数。

6f83fddf9cb9ff6843fffd45e1807199.gif

Code is my life.

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值