So verzögern Sie die Programmausführung in C

Autor: Joan Hall
Erstelldatum: 28 Februar 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
So verzögern Sie die Programmausführung in C - Gesellschaft
So verzögern Sie die Programmausführung in C - Gesellschaft

Inhalt

Wollten Sie schon immer ein C-Programm erstellen, das eine gewisse Zeit wartet? Sie können die Art und Weise anpassen, wie die Zeit im Vorbeiflug angezeigt wird, zum Beispiel: wenn eine Popup-Seite (Benachrichtigung oder Hinweis) für das Spiel angezeigt wird. ... OK, hier sind einige Möglichkeiten, ein "Stillstandsprogramm" zu erstellen, lesen Sie weiter ...

Schritte

  1. 1 Lassen Sie Ihren Prozessor eine Weile laufen, ohne ein beobachtbares Ereignis zu verursachen.
  2. 2 Führen Sie während dieser Verzögerung keine anderen Vorgänge aus, um eine einfache Zeitverzögerung zu erzeugen.

Methode 1 von 2: For-Loop-Technik

  1. 1 Verwenden Sie eine typische "for"-Schleife gefolgt von einer leeren Anweisung, um eine Verzögerung zu implementieren.
  2. 2 Schreiben Sie zum Beispiel wie folgt:
    • für (i = 1; i100; i ++);
    • Der Operator nach dem ";" zwingt den Computer dazu, 100 Mal eine Schleife durchzuführen, ohne dass ein merkliches Ereignis auftritt. Es entsteht nur eine Zeitverzögerung.

Methode 2 von 2: Die "Schlaf ()"-Technik

  1. 1 Verwenden Sie Schlaf (). Die Funktion heißt sleep (int ms), deklariert in TIME.H>, wodurch das Programm eine bestimmte Zeit in Millisekunden warten lässt.
  2. 2 Fügen Sie die folgende Zeile in Ihr Programm vor int main() ein:
    • #include ZEIT.H>
  3. 3 Fügen Sie bei Bedarf ein, um Ihr Programm zu verzögern:
    • Schlaf (1000);
    • Ändern Sie "1000" in die Anzahl der Millisekunden, die Sie warten möchten (wenn Sie beispielsweise eine Verzögerung von 2 Sekunden einstellen möchten, ersetzen Sie sie durch "2000".
    • Tipp: Auf einigen Systemen kann der Wert in Sekunden statt in Millisekunden angegeben werden. Daher ist 1000 manchmal nicht 1 Sekunde, sondern tatsächlich 1000 Sekunden.

Beispielcode

Ein Programm, das eine bestimmte Anzahl von Sekunden wartet:



#include stdio.h> #include dos.h> int main() {int del; // Die Verzögerungszeit printf ("Geben Sie die Verzögerungszeit ein (in Sekunden):"); scanf ("% i",? del); del * = 1000; // Multiplizieren Sie es mit 1000, um es in Millisekunden umzuwandeln Delay (del); // Verzögern. printf ("Fertig."); 0 zurückgeben; }


Ein Programm, das von 10 auf 0 herunterzählt:


#include STDIO.H> #include TIME.H> int main () {int i; für (i = 10; i> = 0; i--) {printf ("% i n", i); // Schreibe die aktuelle 'Countdown'-Zahl Verzögerung (1000); // Warte eine Sekunde} return 0; }

Tipps

  • Eine Millisekunde ist 1/1000 Sekunde.
  • Der obige Algorithmus kann mit einer beliebigen Schleifenstruktur, gefolgt von dem Nulloperator - "; implementiert werden, wie bei der Verwendung von while- oder do-while-Schleifen.

Warnungen

  • Diese Methode ist im Allgemeinen für alles andere als ein triviales Programm nutzlos. Verwenden Sie im Allgemeinen Zeitgeber oder einen ereignisgesteuerten Ansatz, um dies zu erreichen. Andernfalls reagiert das Programm während der Verzögerungszeit nicht und dies ist nicht immer gut. Außerdem kann die Auswahl von N in einer Schleife, wenn dies von der Ausführung von Befehlen abhängt, zu unerwarteten Ergebnissen führen. Anscheinend hat der ursprüngliche Autor noch nie von einem optimierenden Compiler gehört ... er kann eine ganze Schleife optimieren, wenn er nichts tut!
  • Beachten Sie, dass es bei Verwendung der "for-loop"-Methode ein sehr langes Intervall für i dauern kann, da eine leere Anweisung sehr schnell ist. Solche großen Zahlen passen möglicherweise nicht in einen Integer-Typ.
  • Wenn Sie eine for-Schleife verwenden, kann der Compiler den Code optimieren, und da die Schleife nichts bewirkt, entfernen Sie sie. Dies geschieht nicht, wenn Delay() verwendet wird.