C语言中的执行时间

C语言中的执行时间,c,C,我使用了以下代码来计算搜索函数的执行时间(以毫秒为单位) sBegin = clock(); searching(); sEnd = clock(); searchingTime = ((float)(sEnd-sBegin)/CLOCKS_PER_SEC)*1000; 例如,结果是952.000000。我想知道为什么小数点后的数字总是零?我怎样才能解决它?有没有更好的方法来计算C语言中的执行时间?如果要进行整数除法,请尝试 searchingTime = ((sEnd-sBegin)

我使用了以下代码来计算搜索函数的执行时间(以毫秒为单位)

sBegin = clock();
searching();
sEnd = clock();
searchingTime = ((float)(sEnd-sBegin)/CLOCKS_PER_SEC)*1000;

例如,结果是952.000000。我想知道为什么小数点后的数字总是零?我怎样才能解决它?有没有更好的方法来计算C语言中的执行时间?

如果要进行整数除法,请尝试

    searchingTime = ((sEnd-sBegin)/(float)CLOCKS_PER_SEC)*1000;
还有其他地方,你可以放置演员,得到同样的东西,这只是一种可能性

编辑:


在这里,检查问题和答案。我想这些可能会回答你的问题(基本上,它看起来不像
clock()
会切断它)。我上面的答案是错的。

你在做整数除法,试试看

    searchingTime = ((sEnd-sBegin)/(float)CLOCKS_PER_SEC)*1000;
还有其他地方,你可以放置演员,得到同样的东西,这只是一种可能性

编辑:

在这里,检查问题和答案。我想这些可能会回答你的问题(基本上,它看起来不像
clock()
会切断它)。我上面的答案是错的。

请参见:

它取决于
时钟的分辨率。如果返回的值精度为1毫秒,则无法测量小于1毫秒的差值。在您的系统上似乎就是这样

没有更好的便携式时间测量方法。也许您的平台提供了特定的功能,以获得更高分辨率的系统时间。

请参阅:

它取决于
时钟的分辨率。如果返回的值精度为1毫秒,则无法测量小于1毫秒的差值。在您的系统上似乎就是这样


没有更好的便携式时间测量方法。可能您的平台提供了特定的函数,以获得具有更好分辨率的系统时间。

典型系统上的
clock()
分辨率大约为10或20毫秒。代码中缺少左括号
(float)((sEnd sBegin)/CLOCKS\u PER\u second)*1000
((float)(sEnd sBegin)/CLOCKS\u PER\u second)*1000
或…?@undur\u gongor:结果没有改变。典型系统的
clock()
分辨率大约为10或20毫秒。代码中缺少左括号<代码>(float)((发送sBegin)/每秒时钟)*1000
((float)(发送sBegin)/每秒时钟)*1000
或…?@undur\u gongor:结果没有改变。我不想得到同样的结果。我想要小数点后的数字。在我的程序中,小数点后的数字总是零。我的意思和我的例子一样,和你做整数时的答案不一样division@GuyGreer:这不是原因(请参阅更正的问题)。无论如何,952不是1000的倍数。@undur_gongor:我把丢失的一个放在正确的位置,但它没有导致浮点除法。@Ghazallahbari:你已经在做浮点除法了。这不是问题所在。你读过Kerrek SB的评论吗?我不想得到同样的东西。我想要小数点后的数字。在我的程序中,小数点后的数字总是零。我的意思和我的例子一样,和你做整数时的答案不一样division@GuyGreer:这不是原因(请参阅更正的问题)。无论如何,952不是1000的倍数。@undur_gongor:我把丢失的一个放在正确的位置,但它没有导致浮点除法。@Ghazallahbari:你已经在做浮点除法了。这不是问题所在。你读过Kerrek SB的评论吗?