私はBigNerdRanchの本Objective-CProgrammingを使用しています。それは、最初の数章でCで書くことから始まります。私が作成したプログラムの1つでは、スリープ機能を使用しています。その本の中で、それは私に#include <stdlib.h>
その部分の下に置くように言った#include <stdio.h>
。これは、「関数'sleep'の暗黙の宣言はC99では無効です」という警告を取り除くことになっています。でも、なんらかの理由#include <stdlib.h>
で、警告が消えません。この問題でプログラムが正常に動作しなくなるわけではありませんが、どちら#include
を使用する必要があるのか興味がありました。
質問する
433375 次
5 に答える
194
スリープマンページには、で宣言されていると記載されてい<unistd.h>
ます。
あらすじ:
#include <unistd.h>
unsigned int sleep(unsigned int seconds);
于 2013-02-11T18:03:35.520 に答える
79
sleep
非標準の関数です。
- UNIXでは、を含める必要があります
<unistd.h>
。 - MS-Windowsでは、
Sleep
はむしろから<windows.h>
です。
いずれの場合も、ドキュメントを確認してください。
于 2013-02-11T18:03:57.973 に答える
72
これは、クロスプラットフォーム コードに使用するものです。
#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;
}
于 2014-04-18T17:34:34.303 に答える
15
関数'sleep()'の適切な#includeは何ですか?
sleep()
標準Cではありませんが、POSIXであるため、次のようになります。
#include <unistd.h>
于 2013-02-11T18:04:47.077 に答える
9
sleep(3)
にありますが、unistd.h
ではありませんstdlib.h
。コマンドラインで入力man 3 sleep
してマシンを確認しますが、Objective-Cを学習しているので、Macを使用していると思います。Macでは、が必要unistd.h
です。
于 2013-02-11T18:04:00.323 に答える