首先了解一个宏定义:CLOCKS_PER_SEC
字面意思来理解,表示每秒时钟数。
CLOCKS_PER_SEC展开为std::clock_t类型的表达式(不一定是编译时常量),该表达式等于std::clock()返回的每秒时钟节拍数。
无论std::clock()的实际精度如何,POSIX(
Portable Operating System Interface)都将每秒钟的时钟定义为一百万。
VC 6.0中time.h下该符号常量定义如下:
#define CLOCKS_PER_SEC 1000
表示一秒CPU运行的时钟周期数为1000个,相当于1ms一个时钟周期,因此一般说操作系统的单位是毫秒。
使用小实例:
#include <iostream>
using namespace std;
#include <ctime>
void mySleep(double second) // windows.h中有定义Sleep()
{
clock_t st = clock();
while(clock()-st < second*CLOCKS_PER_SEC);
}
void print_strRecursive(const char* str) // 打字机效果
{
if('\0'==*str)
return;
printf("%c",*str);
mySleep(0.5);
print_strRecursive(str 1);
}
void countDown(int count) // 计时
{
if(count==0) return;
mySleep(1);
std::cout << count << '\n';
countDown(count-1);
mySleep(1);
std::cout << count<<'\n';
}
int main()
{
countDown(3);
const char* str ="上善若水。水善利万物而不争。";
print_strRecursive(str);
return 0;
cin.get();
}
-End-