1

当我编写包含延迟的程序时,编译器显示错误 E:\c programms\ma.o:ma.c|| 未定义对“延迟”的引用| ||=== 构建失败:1 个错误,0 个警告(0 分钟,0 秒)===|

4

3 回答 3

2

尝试包含windows.h并使用Sleep(sleep_for_x_milliseconds)而不是delay()– Cool Guy

于 2015-07-17T06:15:50.890 回答
2

您可以使用自己创建的 delay() 函数将语句延迟几毫秒,因为传入参数...

函数体如下......


#include<time.h>
void delay(unsigned int mseconds)
{
    clock_t goal = mseconds + clock();
    while (goal > clock());
}


只需将上面的代码粘贴到您的 C/C++ 源文件中...

示例程序如下...

#include<stdio.h>
#include<time.h>
void delay(unsigned int mseconds)
{
    clock_t goal = mseconds + clock();
    while (goal > clock());
}
int main()
{
    int i;
    for(i=0;i<10;i++)
    {
    delay(1000);
    printf("This is delay function\n");
    }
    return 0;
}
于 2015-07-23T12:41:36.393 回答
0

试试这个功能:

#include <time.h> // clock_t, clock, CLOCKS_PER_SEC

void delay(unsigned int milliseconds){

    clock_t start = clock();

    while((clock() - start) * 1000 / CLOCKS_PER_SEC < milliseconds);
}
  • 参数毫秒是一个非负数。
  • clock() 返回自与特定程序执行相关的纪元以来经过的时钟滴答数。
  • CLOCKS_PER_SEC 此宏扩展为表示每秒时钟滴答数的表达式,其中时钟滴答是恒定但系统特定长度的时间单位,如函数时钟返回的那些。
于 2017-12-15T13:12:58.363 回答