问下标准c里的延时函数是什么?是sleep吗?在那个头文件里,谢谢

jourmen 2003-09-12 10:21:58
我急需:)
...全文
1640 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ortega111 2004-03-15
  • 打赏
  • 举报
回复
gz
rocketliu8899 2003-09-13
  • 打赏
  • 举报
回复

delay()
sleep()
都可以的
wcq8303 2003-09-13
  • 打赏
  • 举报
回复
哦,那也应该有帮助吧,我没有编过UNIX下C程序.
很抱歉,不能帮你了.
l1ul1u 2003-09-12
  • 打赏
  • 举报
回复
sleep()
在dos.h中
wgzh 2003-09-12
  • 打赏
  • 举报
回复
我没用过Unix,不过做为一个实时操作系统,他应该有他自己的时间延迟函数的,找一下看是否有OSTimeDly()类似的函数。
其实用计数延时效果不好的缘故,可能是你对系统定义的时钟节拍数没弄清楚的缘故了。
jourmen 2003-09-12
  • 打赏
  • 举报
回复
delay在dos.h里吧,不是标准c库啊:)


寒舍人 2003-09-12
  • 打赏
  • 举报
回复
delay
jourmen 2003-09-12
  • 打赏
  • 举报
回复
在unix下,不是win下
我的程序
谢谢!
ghostmirror 2003-09-12
  • 打赏
  • 举报
回复
其实实现方法特别多。。。
先解决一个问题,找头文件的问题,你用msdn,用索引,输入Sleep,回车,然后你可以看到所有的关于Sleep的内容,呵呵,头文件在最下面就说明了Header: Declared in winbase.h.
第二,你如果运行Sleep,调用Sleep的这个进程在Sleep的期间将不处理任何消息,你可以用
GetTickCount(或者其他函数)和DispatchMessage重新写一个延时函数
jourmen 2003-09-12
  • 打赏
  • 举报
回复
不是在win下,是纯c下,我需要啊
B828 2003-09-12
  • 打赏
  • 举报
回复
在Windows 下面就用 sleep()这个API就可以了
jourmen 2003-09-12
  • 打赏
  • 举报
回复
to wgzh(火鸟) :
我也想用计数延时的,但是效果不好,听说好生sleep可以的,但是就是没有找到
wgzh 2003-09-12
  • 打赏
  • 举报
回复
回复人: lsAf() ( ) 信誉:100 2003-09-12 10:33:00 得分:0
有这样的延迟函数,在“dos。h”库中的delay()函数
--------------------------------------------------------------

dos.h在标准C中有吗,是C89标准还是C99? 你可以去查查标准C函数库看看。
lsAf 2003-09-12
  • 打赏
  • 举报
回复
有这样的延迟函数,在“dos。h”库中的delay()函数
wgzh 2003-09-12
  • 打赏
  • 举报
回复
标准C函数里好象是没有延时函数的,不过你可以自己写一个撒,就是一个空循环而已:
例如:for(int i = 0; i < 5000; i++);
Zeroins 2003-09-12
  • 打赏
  • 举报
回复
呵呵
UNIX 下有 TC 吗
wcq8303 2003-09-12
  • 打赏
  • 举报
回复
这些问题,你没有必要来CSDN上问,在TC下,你可以将光标移到 Sleep下,按下CTRL+F1 查看帮助,计算机会告诉你的.
ggg82 2003-09-12
  • 打赏
  • 举报
回复
标准c下无延时函数,不过你的编译系统会为你提供,如:winapi中有Sleep,tc下有delay.
至于gc,我不知道。
Zeroins 2003-09-12
  • 打赏
  • 举报
回复
反正 ISO/IEC 9899:1999 标准中没有 dos.h。顾名思义,UNIX 下不会有的

偶自己写了一个 _delay ()

#include <stdio.h>
#include <time.h>

void _delay (long n)
{
clock_t start;

start = clock ();
while ((clock () - start ) < n);
}

main ()
{
printf ("Begin Delay\n");
_delay (2000);
printf ("End\n");
}

偶对 UNIX 不了解,
不过以上程序在 Dev-C++ 的 gcc 下编译通过
延迟2秒

ISO/IEC 9899:1999 标准中有一个宏: CLOCKS_PER_SEC
clock () / CLOCKS_PER_SEC 得到的是以秒为单位的结果
<1> tc2 中的 time.h:没有 CLOCKS_PER_SEC,有一个 CLK_TCK
#define CLK_TCK 18.2
<2> gcc 中的 time.h:#define CLOCKS_PER_SEC ((clock_t)1000)
#define CLK_TCK CLOCKS_PER_SEC
偶没在 ISO/IEC 9899:1999 标准中找到 CLOCKS_PER_SEC 宏是不是
一定是1000
所以偶不敢保证上面程序在所有编译器下都延迟2秒
不行的话你就自己改,反正原理就是这样的

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧