Hoe een programma-uitvoeringsvertraging in c te organiseren

Heb je ooit een programma op C willen maken, welke lijnen een bepaalde tijd? U kunt bijvoorbeeld een manier configureren om "te" vliegen ", bijvoorbeeld: bij het weergeven van een pop-uppagina (melding of tip) om te spelen. . OK, hier zijn enkele manieren om een ​​typeprogramma te maken "Blijf staan" (Sta stil), lees verder ...

Stappen

  1. Titel afbeelding Vertraging in C Stap 1
een. Laat uw processor al een tijdje werken zonder een merkbaar evenement te veroorzaken.
  • Titel afbeelding Vertraging in C Stap 2
    2. Voer geen andere bewerkingen uit tijdens deze vertraging om een ​​eenvoudige tijdelijke vertraging te creëren.
  • Methode 1 van 2:
    Methodikikla "for loop"
    1. Titel afbeelding Vertraging in C Stap 3
    een. Gebruik typischecycle"Voor", gevolgd door een lege operator om de vertraging te implementeren.
  • Titel afbeelding Vertraging in C Stap 4
    2. Schrijf als volgt, bijvoorbeeld:
  • voor (i = 1 - i<100>
  • Operator naar beneden "-" Maakt de computer 100 keer een cyclus uit zonder een merkbare gebeurtenis. Het creëert alleen een tijdelijke vertraging.
  • Methode 2 van 2:
    Methodiek"Slaap ()"
    1. Titel afbeelding Vertraging in C Stap 5
    een. Gebruik slaap ().De functie wordt genoemd (INT MS), aangegeven in
  • Titel afbeelding Vertraging in C Stap 6
    2. Schakel de volgende regel in aan uw programma"Int Main ()":
  • #Erbij betrekken
  • Titel afbeelding Vertraging in C Stap 7
    3. Invoegen waar het nodig is dat uw programma de vertraging maakt:
  • Slaap (1000);
  • Verandering "1000" Op het aantal milliseconden wilt u wachten (bijvoorbeeld als u een vertraging van 2 seconden wilt maken, vervangt u"2000".
  • TIP: in sommige systemen kan de waarde in seconden worden aangegeven in plaats van milliseconden. Daarom is soms 1000 - niet 1 s, maar in feite 1000 seconden.
  • Voorbeeldcode

    Een programma dat een bepaald aantal seconden verwacht:

    #Erbij betrekken #Erbij betrekken int Hoofd () {int del- // de vertragingsperiodeprintf ("Voer de vertragingstijd in (in seconden): ") -Scanf ("% I",& Del) -del * = 1000- // Vermenigvuldig het met 1000 om te converteren naar Millisecondsdelay (DEL) - // Delay.Printf ("Klaar.") -Return 0-}


    Een programma dat aftellen van 10 tot 0 uitvoert:

    #Erbij betrekken #Erbij betrekken  Main () {int i-for (i = 10- i> = 0- i -) {printf ("% in",i) - // schrijf de huidige `Countdown` nummerdelay (1000) - // wacht een tweede} Return 0-}

    Tips

    • Millisecunda is 1/1000 seconden.
    • Het hierboven gespecificeerde algoritme kan worden geïmplementeerd met behulp van een cyclische structuur met de daaropvolgende nuloperator-"- Hoe te gebruiken terwijl of doe-while.

    Waarschuwingen

    • Deze methode is meestal nutteloos in iets anders dan het triviale programma. Gebruik in het algemeen timers of evenementgerichte aanpak om het te implementeren. Anders zal het programma niet reageren tijdens de vertragingstijd en het is niet altijd goed. Bovendien kan de keuze van n in de cyclus, indien het afhangt van de uitvoering van opdrachten, onverwachte resultaten. Blijkbaar heeft de bronauteur nooit gehoord over de optimaliserende compiler ... Het kan de hele cyclus optimaliseren als hij echt niets doet !
    • Merk op dat wanneer u de "For-Loop" -methode ("Voor" -cyclus) gebruikt, kan het voor een zeer groot interval voor I nodig zijn, aangezien de lege operator zeer snel wordt uitgevoerd. Dergelijke grote aantallen passen mogelijk niet in geheel getal.
    • Als u "for-lus" gebruikt, kan de compiler de code optimaliseren en aangezien de cyclus niets doet, verwijder deze. Dit gebeurt niet bij het gebruik van vertraging ().
    Deel in het sociale netwerk:
    Vergelijkbaar