C++中的计时函数是clock(),而与其相关的数据类型是clock_t(头文件是time.h)。函数定义原型为:clock_t clock(void);
这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数 ,在MSDN中称之为 挂钟时间(wal-clock) 。
其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明显,clock_t是一个长整形数。另外在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,因此,我们就可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间。
下面用MFC工程演示一下
新建一个工程,名字为myDlg的基于对话框的程序,在头文件中加入下列代码:
clock_t projstart,projfinish;
在构造函数中加入下列代码:
projstart=projfinish=0;
projstart=clock();
在OnClose()函数中加入下列代码:
projfinish=clock();
CString porjtime;
porjtime.Format(_T("%d"),(projfinish-projstart)/CLOCKS_PER_SEC);
MessageBox(porjtime);
就能够只得你的程序运行时间是多少秒,要是想精确到毫秒级,则需要将程序改为:
porjtime.Format(_T("%.3f"),(double)(projfinish-projstart)/CLOCKS_PER_SEC);
另外:C++中有一个获取时间的函数time(0),这个获取的时间一般是13******表示的。