Почему sleep() работает, даже если я не включаю ‹unistd.h›?

Я могу использовать sleep в c, не включая <unistd.h>, но gcc сообщит:

предупреждение: неявное объявление функции 'sleep' [-Wimplicit-function-declaration]

Но это все еще работает. Например, я могу вызвать sleep(8) и использовать функцию time() для подсчета времени, и я вижу, что прошло 8 секунд.

Почему он сообщает об этом предупреждении?


person Yi Wan    schedule 05.03.2016    source источник
comment
Возможный дубликат Разница между неявным объявлением функции и исходная версия функции   -  person Joseph Young    schedule 05.03.2016
comment
@JosephYoung На самом деле это не дубликат того вопроса, который спрашивает, почему он ведет себя по-другому, а не почему он в первую очередь работает.   -  person Martin Tournoij    schedule 08.03.2016