Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Forskjellen mellom fgetc og getc
    C programmeringsspråk lar deg hente data fra en fil eller tastaturet ved hjelp av funksjoner fgetc eller getc . Begge funksjonene ta neste tilgjengelige tegn fra en datastrøm og lagre det som en usignert røye. Disse to funksjonene brukes for det samme formål , og kan brukes om hverandre dersom visse forhåndsregler tas . Gjennomføring
    p Det er ofte mange legitime måter å utføre et programmeringsspråk oppgave med C language.For eksempel, både fgetc og getc er en del av standard C inkluderer fil, " stdio.h " . Fgetc er implementert som en C - språk funksjon . Getc , på den annen side , kan finnes som en funksjon eller som en makro . For eksempel kan du finne getc inkludert i " stdio.h "-filen som følgende kode :

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

    Når C preprocessor analyserer kildekoden og finner identifikator " getc " med parametere omsluttet innenfor parenteser , setter den de parametere inn i erstatning token som definerer getc . Så lenge parametrene er ikke uttrykk , vil makroen alltid returnere det samme resultatet som fgetc .
    Resultatutvikling

    Getc er noen ganger implementert som en makro for å øke programmets ytelse ved å øke gjennomføring hastighet og redusere behandlingen overhead. Når du bruker fgetc i et program , er prosessor og minne ressurser brukt sporing gjennomføringen av funksjon instruksjoner , de register variabler opprettet samt selve arbeidet som må gjøres for å returnere en karakter fra datastrømmen . Siden getc makro er kompilert inline før programmet noensinne går , er det ingen funksjon overhead og søknaden kan kjøre fortere.
    Side Effects

    Noen ganger er det er å foretrekke å bruke fgetc istedenfor getc for å unngå feil forårsaket av makro- ekspansjons bivirkninger. Bivirkninger kan oppstå når en getc makro er gitt parametere som er uttrykk snarere variabler . Uriktig makro ekspansjon kan føre flere forsøk på å få tilgang til datastrømmen som kan gi uventede resultater . Dette kan forebygges ved å bruke fgetc stedet eller ved å evaluere uttrykket først, deretter den resulterende variabel eller peker til getc .
    Cross Kompatibilitet

    fgetc som en funksjon er finnes i alle C-kompilatorer som samsvarer med American National Standards Institute eller ANSI C standard . Når det gjelder getc imidlertid ting er ofte ikke så standarden. Noen ganger er getc definert som rett og slett som et annet navn for fgetc : en

    # define getc ( __stream ) fgetc ( __stream )

    Når getc er implementert som en funksjon , men du samtidig opprettholde språk kompatibilitet med andre C-kompilatorer og eliminere muligheten for makro bivirkninger.

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan finne størrelsen på en Char Array som har en …
    ·Hvordan lagre en setning i en matrise i C + + 
    ·Forskjeller mellom C & C + + 
    ·Hvordan bruke Kommandolinjeparametre i C + + 
    ·Spesifikasjoner av UML i C + + 
    ·Hvordan å lære C # Online 
    ·Hvordan Loop Fyll en to - dimensjonal array i C + + 
    ·Hvordan bruke negative tall i C 
    ·Hvordan beregne uttrykk med tilveksten & Decrement Oper…
    ·Hvordan Rund desimaler i C + + 
      Anbefalte artikler
    ·VBA String Metoder 
    ·Slik importerer en Java Applet 
    ·Hva gjør Advarsel: Skriptet svarer Mean 
    ·Hvordan rydde opp Java-kode 
    ·Slik fjerner en understrek i Python 
    ·Hvordan sette en forsinkelse i Shell Script 
    ·Hva er en PDB i Visual Studio 
    ·Hvordan lage en stjerne i tekst 
    ·Hvordan å kompilere C + + -kode ved hjelp GNU 
    ·Hvordan justere PHP Parametere for initialisering 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/