Sådan laver du en C-forsinkelse

Har du nogensinde ønsket at lave et C-program vente på en bestemt tid? Det er muligt at bruge en teknik, der tillader tid at passere, for eksempel: ved at vise en startside (en nyhed eller et tip) af et spil. Denne artikel vil vise dig nogle måder at lave et "stille stille" -program på.

trin

Billede med titlen Forsinkelse i C Trin 1
1
Lad CPU`en køre et stykke tid uden at producere en mærkbar begivenhed.
  • Billede med titlen Forsinkelse i C Trin 2
    2
    Gør ikke nogen anden operation i løbet af denne tid for at kunne skabe en simpel forsinkelse.
  • Metode 1
    "For"

    Billede med titel Forsinkelse i C Trin 3
    1
    Brug en normal "for" gentagelsesopstilling efterfulgt af en null-sætning for at gennemføre en forsinkelse.
  • Billede med titlen Forsinkelse i C Trin 4
    2
    Indtast følgende eksempel:
    • for (i = 1 - i<100 - i++) -
    • Instruktionen efterfulgt af ";" får computeren til at cykle 100 gange uden nogen mærkbare begivenheder. Det skaber simpelthen en "Delay / Negative" tid, der ofte kaldes en "forsinkelse".
  • Metode 2
    Teknikken for "sleep ()" funktionen



    Billede med titlen Forsinkelse i C Trin 5
    1
    Brug søvn (). Funktionen kaldet sleep (int ms), der er angivet i filen "TIME.H", får programmet til at vente på den angivne tid i millisekunder.
  • Billedets titel Forsinkelse i C Trin 6
    2
    Indsæt følgende linje i dit program før "int main ()":
    • #include TIME.H
  • Billede med titlen Forsinkelse i C Trin 7
    3
    På det sted, hvor du har brug for programmet til at forsinke, skal du indtaste instruktionen:
    • sove (1000) -
    • Skift værdien "1000" til nummeret i millisekunder, som du vil have, at programmet skal vente (for eksempel hvis du vil oprette en forsinkelse på 2 sekunder, skriv "2000").
    • Tip: På nogle systemer kan værdien bruges i sekunder i stedet for millisekunder. Så der er tilfælde hvor 1000 ikke svarer til 1 sekund, men 1000 sekunder.
  • Kodeeksempler

    Et program, der forventer en vis periode i sekunder:

    #include #include int main () {int delegerer // Varigheden af ​​delayprintf ( "Indtast forsinkelsestiden (i sekunder):") -scanf ( "% i", del)-del * = 1000- // Gang af 1000 til konvertere den tid milissegundosDelay (del) - // Delay.printf ( "Klar".) - returnere 0-}


    Et program, der tæller, faldende, fra 10 til 0:

    #include #include int main () {int i, for (i = 10- i> = 0- i -) {printf ( "% i n", i) - // Skriv skærmen det faktiske antal `contagem`Delay ( 1000) - // Vent 1 sekund} returnér 0-}

    tips

    • Logikken ovenfor kan implementeres ved hjælp af en hvilken som helst gentagelsesstruktur efterfulgt af en null-sætning og ";". Du kan bruge kommandoerne "mens" eller "do-while".
    • En millisekund er lig med 1/1000 af et sekund.

    advarsler

    • Denne teknik er normalt ubrugelig for enhver applikation undtagen i et trivielt program. Generelt foretrækker brugen af ​​timere eller kontrollerede begivenheder med omtrentlige tidspunkter for at implementere forsinkelser. Ellers vil programmet blive låst i forsinkelsens varighed, hvilket ikke er godt. Derudover kan en cyklus gentage N gange, afhængigt af den anvendte instruktion, have uventede resultater. Tilsyneladende har den oprindelige forfatter aldrig hørt om compileroptimering, som kan slette en hel gentagelsescyklus, hvis det ikke gør noget!
    • Bemærk, at når du bruger teknikken med kommandoen "for", kan du bruge en meget høj værdi for variablen "jeg" som en nul-sætningen udføres meget hurtigt. I disse tilfælde kan meget store tal måske ikke passe ind i en heltalvariabel.
    • Hvis du bruger kommandoen til, kan kompilatoren ende med at optimere koden, og når denne erklæring ikke gør noget, vil den blive fjernet. Dette sker ikke, når du bruger funktionen Delay ().
    Del på sociale netværk:

    Relaterede
    © 2024 HodTari.com