当我编写包含延迟的程序时,编译器显示错误 E:\c programms\ma.o:ma.c|| 未定义对“延迟”的引用| ||=== 构建失败:1 个错误,0 个警告(0 分钟,0 秒)===|
问问题
65019 次
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 回答