CLOCKS_PER_SEC的数据类型通常表示为什么? long unsigned int
? clock_t
?它是否因实施而异?
我问,因为我CLOCKS_PER_SEC
在返回值中使用,我想确保使用最合适的类型.
C标准所承诺的所有内容CLOCKS_PER_SEC
都是一个常量表达式,其类型clock_t
必须是算术类型(可以是整数或浮点类型).
(C99 7.12日期和时间<time.h>
)
我认为这clock_t
通常是一个long
,但我不会打赌我的生活是对的.
我通常信赖的哈比森和斯蒂尔(第三版)建议铸造clock_t
,以double
用于在程序中使用,以便您的代码可以不管工作实际的clock_t
类型(18.1 CLOCK,clock_t表示,CLOCKS_PER_SEC,时间):
以下是该
clock
函数如何用于计算ANSI C程序的时间:Run Code Online (Sandbox Code Playgroud)#include <time.h> clock_t start, finish, duration; start = clock(); process(); finish = clock(); printf("process() took %f seconds to execute\n", ((double) (finish - start)) / CLOCKS_PER_SEC );
注意类型 转换是如何
double
允许的clock_t
,CLOCKS_PER_SEC
也可以是浮点数或整数.
您可能会考虑这是否适用于您的目的.