Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Skillnad mellan fgetc och getc

    programspråket C kan du hämta data från en fil eller tangentbordet använder funktioner fgetc eller getc . Båda funktionerna tar nästa tillgängliga tecken från en dataström och lagra den som en unsigned char . Dessa två funktioner används för samma ändamål och kan användas omväxlande om vissa försiktighetsåtgärder vidtas . Genomförande
    p Det finns ofta många legitima sätt att utföra en programmeringsuppgift med C language.foren instans , både fgetc och getc är en del av standarden C inkluderar fil , " stdio.h " . Fgetc är implementerad som en C- språk funktion. Getc , å andra sidan , kan återfinnas som en funktion eller som ett makro . Till exempel kan du hitta getc ingår i " stdio.h " filen som följande kod :

    # define getc ( f) ( ( - ( ( f ) - > level ) > = 0 ) ( unsigned char ) ( + + ( f ) - > curp ) [ -1 ] : ? _fgetc ( f ) ) katalog

    När C preprocessor tolkar din källkod och hittar identifieraren " getc " med parametrar inneslutna inom parentes , infogas dessa parametrar i ersättning token som definierar getc . Så länge parametrarna är inte uttryck , kommer makrot återvänder alltid till samma resultat som fgetc .
    Prestanda

    getc ibland genomförs som ett makro för att öka programmets prestanda genom att öka exekveringshastighet och minska handläggningstiden overhead . När du använder fgetc i ett program, processor och minne resurser spenderas spåra genomförandet av funktionens instruktioner skall registret variabler som skapats, det faktiska arbete som behöver göras för att returnera ett tecken från dataströmmen . Eftersom getc makrot sammanställs inline innan programmet någonsin körs , det finns ingen funktion overhead och din applikation kan köras snabbare .
    Side Effects

    Ibland föredras att använda fgetc istället för getc för att undvika fel som orsakas av makroeffekter expansionssida . Biverkningar kan uppstå när en getc makro ges parametrar som är uttryck snarare variabler . Felaktig makroexpansion kan resultera flera försök att komma åt den dataström som kan ge oväntade resultat . Detta kan förhindras genom att använda fgetc stället eller genom att utvärdera uttrycket först och sedan passerar den resulterande variabeln eller pekare till getc . Som en funktion är Addera Cross Kompatibilitet

    fgetc finns i alla C-kompilatorer som överensstämmer med American National Standards Institute eller ANSI C standarden . När det kommer till getc emellertid saker är ofta inte så vanliga . Ibland är getc definieras så enkelt som ett annat namn för fgetc :

    # define getc ( __stream ) fgetc ( __stream ) katalog

    När getc implementeras som en funktion , dock upprätthålla du samtidigt språket kompatibilitet med andra C-kompilatorer och eliminera risken för makro biverkningar .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man gör Strings gemener på C + +
    ·Hur man kompilerar CPP Använda Visual Studio
    ·Konvertera Reality Factory Into XNA
    ·Konvertera strängar till osignerade långa Värden
    ·Hur man skriver ut Inkrement nummer på samma linje, me…
    ·Konvertera en dubbel till ett heltal i C
    ·Hur du ändrar markören i C + +
    ·Hur man gör filer i MFC
    ·Hur Spola buffert i C + +
    ·Hur deklarera en funktion i C
    Utvalda artiklarna
    ·Hur man öppnar en port på Android
    ·Konvertera heltal i PHP
    ·Hur man skriver ordet motsvarar en Check Belopp i C pro…
    ·Hur hittar summan av siffrorna i ett tal i Prolog
    ·Hur räkna hur många poster har uppdaterats för PHP
    ·Hur indrag text med HTML- programmering
    ·Konvertera en WPF Application till en WPF klassbibliote…
    ·Hur man gör en gradering funktion i Python
    ·Grundläggande Algoritmer i datastrukturer
    ·PHP och ternära Performance
    Copyright © Dator Kunskap http://www.dator.xyz