C 语言实现程序计时笔记

在C编程中,通过time.h库可以实现程序计时。clock_t表示处理器时钟滴答次数,CLOCKS_PER_SEC是一秒内时钟滴答数,而clock()函数用于获取程序执行的时钟周期。本文探讨了如何利用这些工具来了解代码的运行时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有的时候写C代码,想知道代码的执行时间,不知道怎么做。心想要是java就好了,System.currentTimeMillis()或者System.nanoTime(),真的是很方便。经过查阅在C里可以这样做:

#include "stdio.h"
#include "time.h"

int main(int argc, char *argv[])
{
	clock_t start, finish;
	int i, tmp;
	
	start = clock();
	for (i = 0; i < 10 * 1000; i++)
	{
		tmp = i + i * 2;
	}
	finish = clock();
	
	printf("%d\n", (finish - start) / CLOCKS_PER_SEC);
	return 0;
}

原来C的标准库time.h已经提供好了工具。

同时,程序里的clock_t和clock()函数以及CLOCKS_PER_SEC引起了我的兴趣。它们究竟是什么样子呢?

借助于C++,在C-Free和Mingw2.95的编译下,我打印了它们的一些信息。

#include <iostream>
#include <typeinfo>
#include "time.h"

using namespace std;

int main(int argc, char *argv[])
{
    cout << typeid(clock_t).name() << endl;
    cout << typeid(CLOCKS_PER_SEC).name() << endl;
    cout << CLOCKS_PER_SEC << endl;
    return 0;
}

第一行的打印结果不是1, 而是字母l, 说明clock_t是long类型。

第二行信息,说明CLOCKS_PER_SEC是double类型,第三行是1000, 则说明CLOCKS_PER_SEC的值应该是1000.0

 至于clock()函数,还不知道代表着什么,经过部门里C大牛的提醒,我想起了Mingw2.95肯定带的有time.h这个库文件。

找到time.h,我查看了一下,CLOCKS_PER_SEC和clock_t,果然就是上面的结果。

 clock_t表示处理器时钟滴答次数的类型。

CLOCKS_PER_SEC表示一秒钟时钟滴答的次数。

至于clock()函数,还是没看到内部实现,也没有看到注释信息。

这个看来还是需要查官方文档了。后续更新。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值