Я использую книгу Big Nerd Ranch Objective-C Programming, и она начинается с того, что мы пишем на C в первых нескольких главах. В одной из моих программ он создает меня, я использую функцию сна. В книге мне было сказано, что #include <stdlib.h> находится под частью #include <stdio.h>. Это должно избавиться от предупреждения, в котором говорится: "Неявное объявление функции" sleep "недействительно в C99". Но по какой-то причине после того, как я положил #include <stdlib.h>, предупреждение не исчезнет. Эта проблема не мешает программе работать нормально, но мне было просто любопытно, в какой #include мне нужно было использовать!
Что такое #include для функции "sleep" в C?
Ответ 1
Справочная страница по сну говорит, что она объявлена в <unistd.h>.
Ответ 2
sleep является нестандартной функцией.
- В UNIX вы должны включить
<unistd.h>. - В MS-Windows,
sleepскорее от<windows.h>.
В каждом случае проверьте документацию.
Ответ 3
это то, что я использую для кросс-платформенного кода:
#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;
}
Ответ 4
Для sleep() это должно быть
#include <unistd.h>
Ответ 5
sleep(3) находится в unistd.h, а не stdlib.h. Введите man 3 sleep в командной строке, чтобы подтвердить свою машину, но я предполагаю, что вы на Mac, так как вы изучаете Objective-C, а на Mac вам нужно unistd.h.