que programacion programa librerias lenguaje hace funciones definicion cabecera biblioteca archivos c sleep

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.