這是一個示例pgm來檢查Sleep()函數的功能。這是一個演示,因爲iam在我的應用程序開發中使用了sleep()和clock()函數。Sleep()函數的用法
// TestTicks.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<iomanip>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
int i, i2;
i = clock();
//std::cout<<" \nTime before Sleep() : "<<i;
Sleep(30000);
i2 = clock();
//std::cout<<" \nTime After Sleep() : "<<i2;
std::cout<<"\n Diff : "<<i2 -i;
getchar();
return 0;
}
在這段代碼我正在計算使用clock()函數前後的時間。 由於iam使用睡眠(30000),時間差將至少爲30000.
我已經運行此prgm多次。並打印輸出爲30000,30001,30002。這些都沒問題。但有些時候,我得到的值是29999和29997.如何這可能,因爲我把30000睡眠b/w時鐘()。
請給我原因。
非常感謝您的寶貴意見。 – 2012-03-22 15:33:42
我還發現clock()函數基於進程時鐘滴答。但睡眠()只屬於VS ..正確? – 2012-03-23 06:27:01
時鐘屬於C標準庫,而Sleep是Windows API函數。在GNU系統上,相當於納睡。 – SirDarius 2012-03-23 09:17:04