| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Différence entre fgetc et getc
    Le langage de programmation C vous permet d'obtenir des données d'un fichier ou le clavier en utilisant les fonctions fgetc ou getc . Les deux fonctions prennent le caractère suivant disponible à partir d'un flux de données et les stocker comme un unsigned char . Ces deux fonctions sont utilisées dans le même but et peut être utilisée indifféremment si certaines précautions sont prises . La mise en œuvre

    Il ya souvent beaucoup de moyens légitimes pour accomplir une tâche de programmation en utilisant l'instance language.For C , à la fois fgetc et getc font partie de la norme C fichier include " stdio.h " . Fgetc est implémenté comme une fonction en langage C . Getc , d'autre part , peut être trouvé en fonction ou comme une macro . Par exemple , vous pouvez trouver getc inclus dans le fichier " stdio.h " comme le code suivant :

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

    Chaque fois que le préprocesseur C analyse votre code source et trouve l'identifiant " getc " avec des paramètres enfermés dans des parenthèses, il insère ces paramètres dans le jeton de remplacement qui définit getc . Tant que les paramètres ne sont pas des expressions , la macro renvoie toujours le même résultat que fgetc .
    Performance

    getc est parfois mis en œuvre comme une macro pour améliorer les performances de l'application en augmentant la vitesse d'exécution et de réduire la charge de traitement . Lorsque vous utilisez fgetc dans un programme, les ressources du processeur et de la mémoire sont dépensés suivi de l'exécution des instructions de la fonction , les variables de registre créées ainsi que le travail réel qui doit être fait pour revenir un personnage à partir du flux de données. Depuis la macro getc est compilé en ligne avant que le programme fonctionne toujours , il n'y a pas de fonction de tête et votre application peut courir plus vite.
    Side Effects

    Parfois, il est préférable d'utiliser fgetc au lieu de getc afin d' éviter les bogues causés par les effets secondaires d'extension macro . Les effets secondaires peuvent se produire quand une macro getc est donnée paramètres qui sont des expressions plutôt des variables. L'expansion de macro incorrecte peut entraîner de multiples tentatives d'accès au flux de données qui peut produire des résultats inattendus. Cela peut être évité en utilisant fgetc place ou en évaluant l'expression d'abord, puis en passant la variable résultant ou un pointeur vers getc .
    Croix Compatibilité

    fgetc en fonction est trouvé dans tous les compilateurs C qui sont conformes à la American National Standards Institute ou la norme ANSI C . Quand il s'agit de getc , cependant, les choses ne sont souvent pas tellement standard . Parfois , getc est défini comme étant simplement un autre nom pour fgetc :

    # define getc ( __stream ) fgetc ( __stream )

    Lorsque getc est mis en œuvre en fonction , cependant, vous maintenez simultanément la compatibilité de la langue avec d'autres compilateurs C et d'éliminer la possibilité d'effets secondaires macro .

    Previous :

    next :
      articles connexes
    ·Comment écrire une grille 5x5 en utilisant C + + 
    ·Comment implémenter plusieurs piles 
    ·Comment détecter le Coup du Mic sur Xcode 
    ·Comment compiler Flex pour iPhone 
    ·Comment utiliser la fonction Memmove en C + + 
    ·Comment maîtriser C Pointers 
    ·Pair /Impair fonction en programmation C 
    ·Comment écrire un programme simple en C + + 
    ·Types d'attaques de dépassement de tampon 
    ·Comment masquer un objet dans Visual C 
      articles en vedette
    ·Comment faire pour démarrer un navigateur Web en Java 
    ·Comment faire pour automatiser l'exportation d'une requ…
    ·Comment saisir une chaîne de caractères au clavier 
    ·Comment modifier un document Word en C # 
    ·Définition de la base de données hiérarchique 
    ·Comment faire pour supprimer un retour chariot dans une…
    ·Comment déterminer une application racine relative à …
    ·Comment choisir entre les chaînes sur MySQL 
    ·Comment démarrer un programme avec des arguments en VB…
    ·Comment convertir le HTML en texte PHP 
    Copyright © Connaissances Informatiques http://fr.wingwit.com