Saya menggunakan buku Big Nerd Ranch Objective-C Programming, dan itu dimulai dengan meminta kami menulis dalam C di beberapa bab pertama. Di salah satu program yang saya buat, saya menggunakan fungsi tidur. Di buku itu menyuruh saya untuk meletakkan di #include <stdlib.h>
bawah #include <stdio.h>
bagian. Ini seharusnya menghilangkan peringatan yang mengatakan "Deklarasi implisit fungsi 'tidur' tidak valid di C99". Tetapi untuk beberapa alasan setelah saya meletakkan #include <stdlib.h>
, peringatan tidak hilang .. Masalah ini tidak menghentikan program berjalan dengan baik, tetapi saya hanya ingin tahu yang mana yang #include
perlu saya gunakan!
124
Jawaban:
Halaman manual tidur mengatakan itu dideklarasikan dalam
<unistd.h>
.Ringkasan:
sumber
sleep
adalah fungsi non-standar.<unistd.h>
.Sleep
bukan dari<windows.h>
.Dalam setiap kasus, periksa dokumentasinya.
sumber
inilah yang saya gunakan untuk kode lintas platform:
sumber
Untuk
sleep()
itu seharusnyasumber
sleep(3)
masukunistd.h
, tidakstdlib.h
. Ketikman 3 sleep
baris perintah Anda untuk mengonfirmasi mesin Anda, tetapi saya kira Anda menggunakan Mac karena Anda mempelajari Objective-C, dan di Mac, Anda membutuhkannyaunistd.h
.sumber