clock()函数返回的时间可以自己定义单位么?

ding525 2008-10-14 01:50:45
在vs2005的环境下,运行了一下别人写的代码,发现clock()返回的时间单位是微秒,但是我自己在同样的环境下试验,发现返回时间的单位是毫秒。是不是在哪里可以定义这个返回时间的单位呢?是在哪里呢?
注:我自己写代码试验时,没有任何特殊指定。
...全文
1103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ding525 2008-10-14
  • 打赏
  • 举报
回复
两段程序在同一个机器,同一个vs下
ding525 2008-10-14
  • 打赏
  • 举报
回复
就是<time.h>那个,我也没研究到底返回什么类型,我们都用time_t类型。总之在别人的程序里:
time_t start,end;
start=clock();
//do something;
end=clock();
printf("Total CPU Time: %7.3f\n", difftime(cpu_end,cpu_start)); //输出微秒为单位的数,如60000.000
printf("Total CPU Time: %7.3f\n", difftime(cpu_end,cpu_start)/CLOCKS_PER_SEC); //输出秒为单位的数,如0.060

我的程序是:
time_t start, finish;
double duration;
duration = (double)(finish - start) /CLOCKS_PER_SEC;
printf("%ld",finish - start);//输出豪秒为单位的数,如567
printf( "%2.1f seconds\n", duration );//输出秒为单位的数,如0.6

两段程序,前者CLOCKS_PER_SEC是100000,后者是1000
纳闷中。。。

jia_xiaoxin 2008-10-14
  • 打赏
  • 举报
回复
clock: 
用来计算当前函数cpu调用的时间,如果是main函数里,则是整个程序的cpu调用时间了。clock/CLOCKS_PER_SEC那么返回的将是秒,否则返回毫秒时间。

但这是在32位系统下说的,如果返回微妙会不会是在64位系统下?
zclever 2008-10-14
  • 打赏
  • 举报
回复
clock返回的是毫秒吧?
除以CLOCK_PER_SEC得到秒.
其中,#define CLOCKS_PER_SEC ((clock_t)1000)
lzr4304061988012 2008-10-14
  • 打赏
  • 举报
回复
是<time.h>那个吗?不是返回clock_t吗?除以常量CLOCKS_PER_SEC转换为秒.

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧