CLOCKS_PER_SEC的类型

Max*_*xpm 7 c++ time types

CLOCKS_PER_SEC的数据类型通常表示为什么? long unsigned intclock_t?它是否因实施而异?

我问,因为我CLOCKS_PER_SEC在返回值中使用,我想确保使用最合适的类型.

Mic*_*urr 7

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程序的时间:

#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 );
Run Code Online (Sandbox Code Playgroud)

注意类型 转换是如何double 允许的clock_t,CLOCKS_PER_SEC也可以是浮点数或整数.

您可能会考虑这是否适用于您的目的.