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,
Sleepes más bien de<windows.h>.
En todos los casos, verifique la documentación.