Ako zorganizovať oneskorenie realizácie programu v c

Chceli ste niekedy vytvoriť program na C, ktorý riadok určitý čas? Môžete nakonfigurovať spôsob, ako "lietať", napríklad: pri zobrazení kontextovej stránky (oznámenie alebo tip) na prehrávanie. . Ok, tu sú niektoré spôsoby, ako vytvoriť typový program "Stojan" (stojan ešte), prečítajte si ...

Kroky

  1. Obrázok s názvom Oneskorenie v kroku 1
jeden. Nechajte svoj procesor pracovať nejaký čas bez toho, aby ste spôsobili výraznú udalosť.
  • Obrázok s názvom Oneskorenie v C Krok 2
    2. Počas tohto oneskorenia nevykonávajte iné operácie, aby ste vytvorili jednoduché dočasné oneskorenie.
  • Metóda 1 z 2:
    Metodika "pre-loop"
    1. Obrázok s názvom Oneskorenie v C Krok 3
    jeden. Použite typickécycle"Pre", nasleduje prázdny operátor na implementáciu oneskorenia.
  • Obrázok s názvom Oneskorenie v krok 4
    2. Napíšte takto, napríklad:
  • pre (i = 1 - i<100>
  • Prevádzkovateľ "-" robí počítač vykonávať cyklus 100 krát bez zjavnej udalosti. Vytvára len dočasné oneskorenie.
  • Metóda 2 z 2:
    Metodický"SLEEP ()"
    1. Obrázok s názvom Oneskorenie v kroku 5
    jeden. Použite spánok ().Funkcia sa nazýva (int MS), vyhlásená za
  • Obrázok s názvom Oneskorenie v kroku C
    2. Povoliť nasledujúci riadok svojmu programu"Int hlavné ()":
  • #Include
  • Obrázok s názvom Oneskorenie v C Krok 7
    3. Vložka tam, kde je potrebné, aby váš program odkladá:
  • Spánok (1000);
  • Zmena "1000" na počte milisekúnd, ktoré chcete čakať (napríklad, ak chcete vytvoriť 2-sekundové oneskorenie, nahradiť"2000".
  • Tip: V niektorých systémoch sa hodnota môže byť uvedená v sekundách namiesto miliseconds. Preto niekedy 1000 - nie je 1 s, ale v skutočnosti, 1000 sekúnd.
  • Vzorový kód

    Program, ktorý očakáva určitý počet sekúnd:

    #Include #Include int hlavné () {int del- // oneskorenie periodPrintf ("Zadajte čas oneskorenia (v sekundách): ") -Scanf ("% I",& del) -Del * = 1000- // Vynásobte ho 1000 na prevod na MillisecondsDelay (del) - // Oneskorenie.Printf ("hotový.") -Return 0-}


    Program, ktorý vykonáva odpočítavanie od 10 do 0:

    #Include #Include  hlavný () {int i-for (i = 10- i> = 0- i -) {Printf ("%",i) - // Napíšte aktuálny `odpočítavanie` NumberDelay (1000) - // Počkajte druhý} Return 0-}

    Tipy

    • MillisCunda je 1/1000 sekúnd.
    • Vyššie uvedený algoritmus sa dá implementovať pomocou akejkoľvek cyklickej štruktúry s následným nulovým operátorom-"- Ako používať alebo robiť - zatiaľ čo.

    Upozornenia

    • Táto metóda je zvyčajne zbytočná v inom ako triviálnom programe. Všeobecne použite časovače alebo prístup orientovaný na udalosť, aby ho implementovali. V opačnom prípade program nebude reagovať počas času oneskorenia a nie je vždy dobré. Okrem toho, výber n v cykle, ak závisí od vykonania príkazov, môže mať neočakávané výsledky. Zdá sa, že zdroj Autor nikdy nepočul o optimalizácii kompilátorov ... Môže to optimalizovať celý cyklus, ak skutočne nič nerobí !
    • Všimnite si, že pri použití metódy "for-loop" ("pre" cyklus), môže byť potrebné pre veľmi veľký interval pre I, pretože prázdny operátor sa vykonáva veľmi rýchlo. Takéto veľké počty sa nemusia zapadnúť do integerového typu.
    • Ak používate "FOR-LOOP", kompilátor môže optimalizovať kód, a pretože cyklus nič nerobí, vyberte ho. Toto sa nevyskytuje pri použití oneskorenia ().
    Podobné publikácie