2006
10-17

 
使用标准函数 clock 模拟非标准函数 delay 。只是出于娱乐目的,没什么移植性,因为 clock() 不一定每次都能获取程序当前运行了多久,如果不能获取,则返回 -1 。


代码如下:


// C++ 版本
// 文件名:my_delay.cpp
// 功能:程序暂停一段时间(以毫秒计算)
// 作者:antigloss at http://cpp.ga-la.com


// prototype
inline void my_delay(unsigned long ms = 1000);


#include <ctime>


int main()
{
    my_delay(5000);
   
    return 0;
}


inline void my_delay(unsigned long ms)
{
    double start_time = static_cast<double>( clock() ) / CLOCKS_PER_SEC * 1000;   
    while ( static_cast<double>( clock() ) / CLOCKS_PER_SEC * 1000 – start_time < ms ) ;
}


============================


/* C 版本
 * 文件名:my_delay.c
 * 作者:antigloss at http://cpp.ga-la.com
 * 功能:程序暂停一段时间(以毫秒计算)
 */


/* C99 支持内联函数,如果您的编译器支持 C99,也可以把这个函数定义为内联函数 */
void my_delay(unsigned long ms);


#include <time.h>


int main(void)
{
    my_delay(10000);
   
    return 0;
}


void my_delay(unsigned long ms)
{
    double start_time = (double)clock() / CLOCKS_PER_SEC * 1000;   
    while ( (double)clock() / CLOCKS_PER_SEC * 1000 – start_time < ms ) ;
}


留下一个回复