Używam książki Big Nerd Ranch Objective-C Programming i zaczyna się od napisania w C w pierwszych kilku rozdziałach. W jednym z moich programów, które mam do tworzenia, używam funkcji uśpienia. W książce kazał mi umieścić #include <stdlib.h>
pod #include <stdio.h>
częścią. Ma to na celu wyeliminowanie ostrzeżenia, które mówi, że „Niejawna deklaracja funkcji 'sleep' jest nieprawidłowa w C99”. Ale z jakiegoś powodu po włożeniu #include <stdlib.h>
ostrzeżenie nie znika .. Ten problem nie przeszkadza programowi w działaniu, ale byłem po prostu ciekawy, na którym #include
muszę użyć!
124
Odpowiedzi:
Sen strona mężczyzna mówi, że jest zadeklarowana
<unistd.h>
.Streszczenie:
źródło
sleep
jest funkcją niestandardową.<unistd.h>
.Sleep
jest raczej z<windows.h>
.W każdym przypadku sprawdź dokumentację.
źródło
Oto, czego używam w przypadku kodu międzyplatformowego:
źródło
Tak
sleep()
powinno byćźródło
sleep(3)
jest wunistd.h
środku, niestdlib.h
. Wpiszman 3 sleep
w wierszu poleceń, aby potwierdzić dla swojego komputera, ale zakładam, że używasz komputera Mac, ponieważ uczysz się Objective-C, a na komputerze Mac potrzebujeszunistd.h
.źródło