著者:
Joan Hall
作成日:
28 2月 2021
更新日:
1 J 2024
コンテンツ
一定時間待つCプログラムを作りたいと思ったことはありませんか?たとえば、ゲームのポップアップページ(通知またはヒント)を表示するときに、時間を「フライバイ」する方法をカスタマイズできます。 ..。 OK、ここに「静止」プログラムを作成するいくつかの方法があります、読んでください...
ステップ
- 1 観察可能なイベントを発生させずに、プロセッサをしばらく実行します。
- 2 単純な時間遅延を作成するために、この遅延中に他の操作を実行しないでください。
方法1/2:Forループ手法
- 1 通常の「for」ループの後に空のステートメントを使用して、遅延を実装します。
- 2 たとえば、次のように記述します。
- for(i = 1; i100; i ++);
- 「;」に続く演算子目立ったイベントなしに、コンピューターを強制的に100回ループさせます。時間遅延が発生するだけです。
方法2/2:「スリープ()」テクニック
- 1 スリープ()を使用します。 この関数はsleep(int ms)と呼ばれ、TIME.H>で宣言されます。これにより、プログラムはミリ秒単位で指定された時間待機します。
- 2 int main()の前に、プログラムに次の行を含めます。
- #include TIME.H>
- 3 プログラムを遅らせるために必要な場所に貼り付けます。
- 睡眠(1000);
- 「1000」を待機するミリ秒数に変更します(たとえば、2秒の遅延を作成する場合は、「2000」に置き換えます。
- ヒント:一部のシステムでは、値がミリ秒ではなく秒で指定される場合があります。したがって、1000が1秒ではない場合もありますが、実際には1000秒です。
サンプルコード
特定の秒数待機するプログラム:
#include stdio.h> #include dos.h> int main(){int del; //遅延期間printf( "遅延時間(秒単位)を入力してください:"); scanf( "%i"、?del);デル * = 1000; // 1000を掛けて、ミリ秒に変換しますDelay(del); // 遅れ。 printf( "完了。"); 0を返します。 }
10から0までカウントダウンするプログラム:
#include STDIO.H> #include TIME.H> int main(){int i; for(i = 10; i> = 0; i-){printf( "%i n"、i); //現在の「カウントダウン」番号を書き込みますDelay(1000); // 1秒待つ} return 0; }
チップ
- ミリ秒は1/1000秒です。
- 上記のアルゴリズムは、任意のループ構造とそれに続くnull演算子-";を使用して、whileループまたはdo-whileループを使用して実装できます。
警告
- この方法は、一般的に、些細なプログラム以外には役に立ちません。一般に、これを実現するには、タイマーまたはイベント駆動型アプローチを使用します。そうしないと、遅延時間中にプログラムが応答しなくなり、これは必ずしも良いことではありません。また、コマンドの実行に依存する場合、ループでNを選択すると、予期しない結果が生じる可能性があります。どうやら元の作者は最適化コンパイラについて聞いたことがないようです...実際に何もしなければループ全体を最適化できます!
- 「for-loop」メソッドを使用する場合、空のステートメントは非常に高速であるため、iの間隔が非常に長くなる可能性があることに注意してください。このような大きな数値は整数型に適合しない場合があります。
- forループを使用する場合、コンパイラーはコードを最適化できます。ループは何も実行しないため、コードを削除します。これは、Delay()を使用している場合は発生しません。