一个关于C语言中clock的小小问题

有没有人在啊,想请讲解下,一个关于C语言中clock的小小问题?

#include<stdio.h>
#include<time.h>
main()
{int i,j,x=0;
clock_t end;
printf("start\n");
for(i=100000;i>11;i--)for (j=0;j<1000;j++) {x++; x = x%1000; }
end=clock()/CLOCKS_PER_SEC;
printf("%ld\n",end);}
如果不定义end,我将最后的值赋给i最后的结果还是没变,那么定义end有什么特别的用处啊!
最新回答
拥欲

2024-11-24 05:34:03

定义end没有特别的用处。
你可以直接用
printf("%lf\n", (double)clock()/CLOCKS_PER_SEC);

结果是一样的
赋值给i的话注意long转int精度丢失
clock() 返回值是微秒1000000=1秒,int的上限是2147483647
也就是说如果你的程序运行超过2147秒(约35分钟),赋值给i就会溢出。那得多慢的机器啊。。。
有杀气的萝莉

2024-11-24 06:59:28

类型不同,clock_t大多是long的别名,而如果你直接使用int型,就可能会存在数据的截断/丢失
ㄨ菲薄的青春

2024-11-24 05:01:36

从你这个程序来看是对的,至于end,这只是说明了一种用法,举个例子
你程序中的for(i=100000;i>11;i--)这句可能有点问题,当然运行起来也许没问题,看编译器,
因为int型一般最大是65535,而你的赋值是100000,