"delay" no esta en dos.h?

Mikuyo
15 de Abril del 2005
Antes de nada un saludo pues es la primera vez que posteo aqui, querria que me resolvieseis una duda que tengo:
Pues siempre crei que la funcion "delay" estaba en la declaracion/prototipo "dos.h", y ahora resulta que tengo el Turbo C++ 4.5 para win y todo muy bien... hasta que meto la funcion "delay" (con "dos.h" declarado anteriormente, of course) y me aparece el siguiente mensaje:
"Call to function 'delay' with no prototype in function main"

Si alguien me puede ayudar, soy todo oidos... ejem queria decir "ojos". ;-)

Un saludo a todos

Alejandro_
15 de Abril del 2005
en particular, la función delay es propia de los viejos compiladores de Borland para el viejo DOS de 16 bits... y aunque ya nadie los use seriamente, siguen siendo muy populares en el ámbito escolar.
Si necesitas una forma de "delay" en tu programa Windows, puedes usar la función Sleep(milisegundos) que se encuentra en <windos.h>
por ejemplo:

#include <windows.h>
//... ...
Sleep(1000); /* detiene la ejecución 1 segundo */
//...

La ventaja sobre los viejos "delay()" es que no mantiene ocupado al sistema inútilmente, sino que suspende la ejecución de tu proceso durante el tiempo especificado, sin ocupar el procesador para eso.

Hazte un favor, cambia de compilador (y de profesor).

Alejandro

Zion 2099
15 de Abril del 2005
la funcion sleep si es funcional solo que la unidad de tiempo son segundos, asi que es recomendable poner sleep (1.5) aproximadamente o depende de lo que se desee

Ah! por cierto
sleep esta dentro de la libreria dos.h no en windows.h
Saludos :)

Alejandro_
15 de Abril del 2005
Hola Zion; como tú dices, sleep() está en el dos.h de Borland y no en windows.h de Windows, pero yo me refería a la función Sleep() de Windows, no a sleep() de Borland.

Saludos,

Alejandro