C语言中clock()函数的用法???????

xuexic 2007-01-23 08:57:31
我在一程序中需要精确计时,用clock()函数,但是发现有点问题:

if (key == SOH)
{
rx_start = 1;
st = clock();
buf[i] = key;
}

while (rx_start)
{
if (IsCom(port) == QueueIsNotEmpty)
{

i++;

buf[i] = ReadCom(port);
}
end = clock();
}
此段代码放在一个循环中,st的值是不断增加的,但是end总是为0,不知怎么回

事?

请问是怎么回事?或者如何解决精确计时问题(精确到毫秒),
...全文
3812 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujuanhello 2009-09-23
  • 打赏
  • 举报
回复
你的函数应该在输出的(end - start) / CLK_TCK值之前加一个double做强制转换才能用。
mirror1226 2007-01-30
  • 打赏
  • 举报
回复
CLK_TCK又是什么常量?
htqx 2007-01-30
  • 打赏
  • 举报
回复
难道是传说中的编译器老化问题?
mirror1226 2007-01-30
  • 打赏
  • 举报
回复
我也遇到同样的问题!
xuexic 2007-01-24
  • 打赏
  • 举报
回复
http://www.programfan.com/article/showarticle.asp?id=2798

看此文。

你的问题不是 clock函数的问题,
检查你的代码 ~


////////////////////////////////////////////////////////
但是关于它的具体用法我还不是很清楚,我是想计算两次执行代码之间的时间差值,


我这样用:
start = clock();

delay(1000);

end = clock();
printf("start=%d,end=%d\n",start,end)

为什么输出都是0呢?
我在turboc中编译运行的?
很想有颗星 2007-01-24
  • 打赏
  • 举报
回复
ding
jixingzhong 2007-01-23
  • 打赏
  • 举报
回复
http://www.programfan.com/article/showarticle.asp?id=2798

看此文。

你的问题不是 clock函数的问题,
检查你的代码 ~
jixingzhong 2007-01-23
  • 打赏
  • 举报
回复
函数名: clock
功 能: 确定处理器时间
用 法: clock_t clock(void);
程序例:

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

int main(void)
{
clock_t start, end;
start = clock();

delay(2000);

end = clock();
printf("The time was: %f\n", (end - start) / CLK_TCK);

return 0;
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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