有的时候写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).na