Ich benutze die Big Nerd Ranch Buch Objective-C-Programmierung, und es beginnt damit, dass wir in den ersten paar Kapiteln in C schreiben. In einem meiner Programme habe ich es erstellt, ich benutze die Schlaffunktion. Im Buch hat es mir gesagt, #include <stdlib.h>
unter dem #include <stdio.h>
Teil zu setzen. Dies soll die Warnung loswerden, die besagt, dass "Implizite Deklaration der Funktion 'Schlaf' in C99 ungültig ist". Aber aus irgendeinem Grund, nachdem ich #include <stdlib.h>
gesetzt habe, geht die Warnung nicht weg .. Dieses Problem hört das Programm nicht auf, gut zu laufen, aber ich war gerade neugierig, welches #include
ich verwenden musste!Was ist der richtige #Include für die Funktion 'Schlaf' in C?
Antwort
Der Schlaf man page sagt, dass es in <unistd.h>
erklärt wird. Hast du das in dein Programm aufgenommen?
Ich hatte nicht! Vielen Dank! Es störte mich nur, weil das Buch sagte, dass die
Wäre es besser, die sleep() -Funktion oder Zeit() zu verwenden, um eine Verzögerung zu erstellen? – LandonZeKepitelOfGreytBritn
sleep
ist eine Nicht-Standard-Funktion.
- Unter UNIX müssen Sie
<unistd.h>
einschließen. - Auf MS-Windows ist
Sleep
eher von<windows.h>
.
In jedem Fall überprüfen Sie die Dokumentation.
sleep(3)
ist in unistd.h
, nicht stdlib.h
. Geben Sie in Ihrer Befehlszeile man 3 sleep
ein, um Ihren Computer zu bestätigen, aber ich nehme an, Sie befinden sich auf einem Mac, seit Sie Objective-C gelernt haben, und auf einem Mac benötigen Sie unistd.h
.
Für sleep()
sollte es
#include <unistd.h>
das ist das, was ich für einen Cross-Plattform-Code verwenden:
#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;
}
nette Lösung, nützlich – HCarrasko
plus eines für die einfache Frage stellen mutig genug zu sein und mir helfen. –
Wenn Sie eine größere IDE verwenden (NetBeans, IntelliJ IDEA, Eclipse). Geben Sie den Namen einer Funktion ein, und drücken Sie dann die Tastenkombination Alt + Eingabe, um die Bibliothek, in der sie enthalten ist, automatisch zu importieren. – T04435