clock()函数一直都是最大值

qq_37395352 2021-03-16 03:22:52
为什么程序一执行clock()函数就给了最大值
...全文
221 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-03
  • 打赏
  • 举报
回复
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
自信男孩 2021-03-16
  • 打赏
  • 举报
回复
//printf("%d",duration );
printf("%lf\n",duration );

duration定义成double类型,然后%lf输出。
楼主的结果是0,因为不了解double和int类型数据在内存的存放是不一样的。建议楼主了解一下~
qq_37395352 2021-03-16
  • 打赏
  • 举报
回复
clock函数我看了,但是我直接main函数里就直接调用了clock,然后一执行,显示对应的clock_t的参数就是0xffffff,下面是对应的程序; int main(void) { clock_t start,end; start=clock(); sleep(500); end=clcok(); duration = (double)(end- start) / CLOCKS_PER_SEC; printf("%d",duration ); } 结果显示的是0 ;然后分步执行,查看对应的参数,start和end都是最大值0xffffff,
赵4老师 2021-03-16
  • 打赏
  • 举报
回复
clock Calculates the processor time used by the calling process. clock_t clock( void ); Routine Required Header Compatibility clock <time.h> ANSI, Win 95, Win NT For additional compatibility information, see Compatibility in the Introduction. Libraries LIBC.LIB Single thread static library, retail version LIBCMT.LIB Multithread static library, retail version MSVCRT.LIB Import library for MSVCRT.DLL, retail version Return Value clock returns the number of clock ticks of elapsed processor time. The returned value is the product of the amount of time that has elapsed since the start of a process and the value of the CLOCKS_PER_SEC constant. If the amount of elapsed time is unavailable, the function returns –1, cast as a clock_t. Remarks The clock function tells how much processor time the calling process has used. The time in seconds is approximated by dividing the clock return value by the value of the CLOCKS_PER_SEC constant. In other words, clock returns the number of processor timer ticks that have elapsed. A timer tick is approximately equal to 1/CLOCKS_PER_SEC second. In versions of Microsoft C before 6.0, the CLOCKS_PER_SEC constant was called CLK_TCK. Example /* CLOCK.C: This example prompts for how long * the program is to run and then continuously * displays the elapsed time for that period. */ #include <stdio.h> #include <stdlib.h> #include <time.h> void sleep( clock_t wait ); void main( void ) { long i = 600000L; clock_t start, finish; double duration; /* Delay for a specified time. */ printf( "Delay for three seconds\n" ); sleep( (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(); while( i-- ) ; finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf( "%2.1f seconds\n", duration ); } /* Pauses for a specified number of milliseconds. */ void sleep( clock_t wait ) { clock_t goal; goal = wait + clock(); while( goal > clock() ) ; } Output Delay for three seconds Done! Time to do 600000 empty loops is 0.1 seconds Time Management Routines See Also difftime, time

70,020

社区成员

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

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