Kaip atidėti programos vykdymą C

Autorius: Joan Hall
Kūrybos Data: 28 Vasario Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
HBO 4, diagnostika ir „pasidaryk pats“ nustatymas
Video.: HBO 4, diagnostika ir „pasidaryk pats“ nustatymas

Turinys

Ar kada nors norėjote sukurti C programą, kuri laukia tam tikrą laiką? Galite pritaikyti būdą, kaip suteikti laiko „skristi pro šalį“, pavyzdžiui: rodant žaidimo iššokantį puslapį (pranešimą ar užuominą). ... Gerai, čia yra keletas būdų, kaip sukurti „stovėjimo“ programą, skaitykite toliau ...

Žingsniai

  1. 1 Leiskite procesoriui kurį laiką veikti, nesukeliant pastebimo įvykio.
  2. 2 Šio vėlavimo metu neatlikite jokių kitų operacijų, kad būtų sukurtas paprastas laiko atidėjimas.

1 metodas iš 2: kilpos technika

  1. 1 Norėdami įgyvendinti uždelsimą, naudokite įprastą ciklą „už“, po kurio eina tuščias teiginys.
  2. 2 Pavyzdžiui, rašykite taip:
    • (i = 1; i100; i ++);
    • Operatorius, einantis po „;“ priverčia kompiuterį kilpti 100 kartų be pastebimo įvykio. Tai sukuria tik laiko vėlavimą.

2 metodas iš 2: „miego ()“ technika

  1. 1 Naudokite miegą (). Funkcija vadinama miego režimu (int ms), deklaruojama TIME.H>, todėl programa palaukia nurodytą laiką milisekundėmis.
  2. 2 Prieš int main () į savo programą įtraukite šią eilutę:
    • #įtraukti TIME.H>
  3. 3 Įklijuokite, kur reikia, kad programa vėluotų:
    • miegas (1000);
    • Pakeiskite „1000“ į norimų laukti milisekundžių skaičių (pavyzdžiui, jei norite atidėti 2 sekundes, pakeiskite jį „2000“.
    • Patarimas: kai kuriose sistemose vertė gali būti nurodyta sekundėmis, o ne milisekundėmis. Todėl kartais 1000 yra ne 1 sekundė, o iš tikrųjų 1000 sekundžių.

Pavyzdinis kodas

Programa, laukianti tam tikrą sekundžių skaičių:



#include stdio.h> #include dos.h> int main () {int del; // Uždelsimo laikotarpis printf ("Įveskite uždelsimo laiką (sekundėmis):"); scanf ("% i" ,? del); del * = 1000; // Padauginkite jį iš 1000, kad konvertuotumėte į milisekundes Delay (del); // Uždelsimas. printf („Atlikta“); grįžti 0; }


Programa, kuri skaičiuoja nuo 10 iki 0:


#include STDIO.H> #include TIME.H> int main () {int i; (i = 10; i> = 0; i--) {printf ("% i n", i); // Parašykite dabartinį 'atgalinės atskaitos' skaičių Delay (1000); // Palaukite sekundę} return 0; }

Patarimai

  • Milisekundė yra 1/1000 sekundės.
  • Aukščiau pateiktas algoritmas gali būti įgyvendintas naudojant bet kokią kilpinę struktūrą, po kurios eina nulinis operatorius - "; kaip naudojant ciklus tuo metu arba„ daryti tuo pačiu metu ".

Įspėjimai

  • Šis metodas paprastai nenaudingas niekam, išskyrus trivialią programą. Norėdami tai padaryti, paprastai naudokite laikmačius arba įvykius pagrįstą metodą. Priešingu atveju programa per vėlavimo laiką nereaguoja ir tai ne visada yra gerai. Be to, pasirinkus ciklą N, jei tai priklauso nuo komandų vykdymo, gali būti netikėtų rezultatų. Matyt, pirminis autorius niekada negirdėjo apie optimizuojantį kompiliatorių ... jis gali optimizuoti visą ciklą, jei iš tikrųjų nieko nedaro!
  • Atminkite, kad naudojant „for-loop“ metodą, i gali užtrukti labai daug, nes tuščias teiginys yra labai greitas. Tokie dideli skaičiai gali netilpti į sveikųjų skaičių tipą.
  • Jei naudojate for-loop, kompiliatorius gali optimizuoti kodą, o kadangi ciklas nieko nedaro, pašalinkite jį. Tai neįvyksta naudojant „Delay“ ().