programacion - librerias de c++ pdf
¿Cuál es el#include apropiado para la función ''dormir'' en C? (5)
Estoy usando el libro de Big Nerd Ranch Objective-C Programming, y comienza pidiéndonos que escribamos en C en los primeros capítulos. En uno de mis programas me hace crear, uso la función de dormir. En el libro, me dijo que pusiera #include <stdlib.h>
debajo de la parte #include <stdio.h>
. Se supone que esto elimina la advertencia que dice "La declaración implícita de la función ''dormir'' no es válida en C99". Pero por alguna razón después de poner #include <stdlib.h>
, la advertencia no desaparece. Este problema no impide que el programa funcione correctamente, ¡pero tenía curiosidad sobre qué #include
necesitaba usar!
La página del hombre dormido dice que está declarada en <unistd.h>
. ¿Has incluido esto en tu programa?
Para sleep()
debería ser
#include <unistd.h>
esto es lo que uso para un código multiplataforma:
#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif
int main()
{
pollingDelay = 100
//do stuff
//sleep:
#ifdef _WIN32
Sleep(pollingDelay);
#else
usleep(pollingDelay*1000); /* sleep for 100 milliSeconds */
#endif
//do stuff again
return 0;
}
sleep(3)
está en unistd.h
, no en stdlib.h
. Escriba man 3 sleep
en su línea de comando para confirmar su máquina, pero supongo que está en una Mac ya que está aprendiendo Objective-C, y en una Mac, necesita unistd.h
.
sleep
es una función no estándar.
- En UNIX, debe incluir
<unistd.h>
. - En MS-Windows,
Sleep
es más bien de<windows.h>
.
En todos los casos, verifique la documentación.