关于C语言中的sleep函数,有点不明白(100分)

  • 主题发起人 主题发起人 laline
  • 开始时间 开始时间
L

laline

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么用VC的CL编译标准C文件的时候,不能识别sleep这个函数?
好象sleep应该是个标准函数,不知道是不是WINDOWNS平台下是不是
有什么特别的规定
再有,sleep(0.5),编译不通过,最少是1秒,不知道怎么让程序停1秒以下?
 
C入面还有一个delay()参数是毫秒做单位的。。。。
windows下好像不行的。。。。要用其它的
 
参数是毫秒!
 
如果你要使用Sleep的话,就#include<windows.h>
 
C语言,好久没用了,但sleep函数肯定存在,到帮助文件找昭它所在
的头文件,再include就可以了。
 
Sleep的参数是毫秒不是秒
 
to 各位说参数是毫秒的各位老大:
我在UNIX &amp;
LINUX下编译的时候参数都是秒,这是肯定的
to 张无忌:
我已经包含了,但是错误依然,难道是我的VC装的有问题?
 
可惜你现在是在Windows下用VC,所以Sleep的参数他就是毫秒.你必须传整数.
 
不相信你就找MSDN看看吧
VOID Sleep(
DWORD dwMilliseconds // sleep time in milliseconds
);
 
但是Windows下确实是毫秒
 
Windows下面的Sleep是一个从kernel32.dll导出的WinAPI。
问题问的是sleep,是C库函数。
sleep()不是ANSI建议的C Lib的一部分,移植性仅仅在DOS/UNIX下面。
也就是说,编译器厂商可以不在自己的C Runtime里面实现该函数。
而且,sleep典型的实现方式是时钟轮询,不会释放CPU控制权,并不适合Windows。
Hope this helps.
 
Dos下的sleep参数单位是秒,delay参数单位是毫秒
它们都在Dos.h里面,需要包含这个头文件才行
 
操作端口的函数(inportb...)在VC下也找不到了,
 
to ALL:
秒的问题暂且不论,我现在包含了Dos.h windows.h
可编译器就是不认,是不是需要联编一个 库 但我不知道是哪个
TO mikedeakins
无论用什么方法,能让程序停一秒即可
 
//Dos下的sleep参数单位是秒,delay参数单位是毫秒
//它们都在Dos.h里面,需要包含这个头文件才行
上面说的是在Turbo C里面
在VC里面可以这样:
//main.c
#include <windows.H>
#include <stdio.h>
WINBASEAPI
VOID
WINAPI
Sleep(
DWORD dwMilliseconds
);
void main()
{
printf("11111");
Sleep(5000);
printf("22222");
}
 
嗨!闹了半天 是Sleep 而非 sleep
 
多人接受答案了。
 
后退
顶部