标题:time.h里的clock()怎么用啊
只看楼主
dapeng83
Rank: 1
来 自:河南
等 级:新手上路
帖 子:26
专家分:5
注 册:2009-11-12
结帖率:63.64%
已结贴  问题点数:10 回复次数:5 
time.h里的clock()怎么用啊
程序如下:
#include <time.h>
#include <stdio.h>
#include <dos.h>
int main(void)
{
   clock_t start, end;
   start = clock();
   delay(20000);
   end = clock();
   printf("The time was: %f\n", (end - start) / CLK_TCK);
   return 0;
}

但我在delay()里的数字无论怎么改,输出要么不变,要么就是0,怎么回事啊,,请帮忙解释下,谢谢
搜索更多相关主题的帖子: time clock 
2009-12-19 23:19
keepc
Rank: 1
等 级:禁止访问
帖 子:61
专家分:9
注 册:2009-11-15
得分:3 
  printf("The time was: %f\n", (end - start) / CLK_TCK);

是不是应该改成 %d ??


CLK_TCK 是什么意思??代表什么数值??
2009-12-19 23:52
sidooh
Rank: 4
等 级:业余侠客
帖 子:121
专家分:265
注 册:2009-6-26
得分:3 
改成%d是可以的,但看楼主的意思是想要结果精确点,就应该改成

printf("%f\n",(float)(end-start)/(float)CLK_TCK);


我看了一下,在vc和gcc(windows)里clock_t和CLK_TCK的定义都是一样的:
typedef long clock_t
#define CLK_TCK CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 1000


都是int类型,所以要转换类型





CLK_TCK 是什么意思??代表什么数值??
#define CLK_TCK CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 1000
所以CLK_TCK应该就是每秒时钟摆动的次数



但我在delay()里的数字无论怎么改
我在VC++和gcc(windows)里的dos.h和time.h里都没有找到delay()函数,请问delay()是在你的编译器自带函数库里定义的还是用的其他函数库?
作为代替,我使用了GLib里的g_usleep()


[ 本帖最后由 sidooh 于 2009-12-20 13:32 编辑 ]
2009-12-20 13:28
dapeng83
Rank: 1
来 自:河南
等 级:新手上路
帖 子:26
专家分:5
注 册:2009-11-12
得分:0 
在dos.h函数里,有delay()函数。在time.h函数里#define CLK_TCK 18.2,我不知道18.2是什么意思
2009-12-21 19:33
wyane
Rank: 2
等 级:论坛游民
帖 子:14
专家分:12
注 册:2009-9-18
得分:3 
问题在delay()函数,这个函数放在这里是没用的,所以不管怎么执行所用的时间都是相同的
2009-12-21 19:56
sidooh
Rank: 4
等 级:业余侠客
帖 子:121
专家分:265
注 册:2009-6-26
得分:0 
在dos.h函数里,有delay()函数。在time.h函数里#define CLK_TCK 18.2,我不知道18.2是什么意思

哦,没用过tc,不了解这是什么意思

C标准库对CLK_TCK的定义可以看这里
http://en.
2009-12-21 20:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293912-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.228871 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved