Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Διαφορά μεταξύ fgetc και getc

Η γλώσσα προγραμματισμού C σας επιτρέπει να πάρετε τα δεδομένα από ένα αρχείο ή το πληκτρολόγιο , χρησιμοποιώντας τις συναρτήσεις fgetc ή getc . Και οι δύο λειτουργίες λαμβάνουν την επόμενη διαθέσιμη χαρακτήρα από μία ροή δεδομένων και να το αποθηκεύσετε ως unsigned char . Αυτές οι δύο λειτουργίες που χρησιμοποιούνται για τον ίδιο σκοπό και μπορούν να χρησιμοποιούν εναλλακτικά εάν ληφθούν ορισμένες προφυλάξεις . Εφαρμογή
Η

Υπάρχουν συχνά πολλές νόμιμες τρόπους για να εκτελέσει μια εργασία προγραμματισμού χρησιμοποιώντας το παράδειγμα C language.For , τόσο fgetc και getc αποτελούν μέρος του κανονικού περιλαμβάνει το αρχείο , " stdio.h " . Fgetc υλοποιείται ως μία λειτουργία C- γλώσσα. Getc , από την άλλη πλευρά, μπορεί να βρεθεί ως μια λειτουργία ή ως μακροεντολή . Για παράδειγμα , μπορείτε να βρείτε getc περιλαμβάνονται στο αρχείο " stdio.h ", όπως τον ακόλουθο κώδικα :

# define getc ( στ ) ( ( - ( ( στ ) - > επίπεδο ) > = ? 0 ) ( unsigned char ) ( + + ( στ ) - > curp ) [ -1 ] : _fgetc ( στ ) )

Κάθε φορά που η προεπεξεργαστή C αναλύει τον πηγαίο κώδικα σας και βρίσκει το αναγνωριστικό " getc " με τις παραμέτρους που περικλείεται μέσα σε παρένθεση, εισάγει αυτές τις παραμέτρους στο κουπόνι αντικατάστασης που ορίζει getc . Εφ 'όσον οι παράμετροι δεν είναι εκφράσεις , η μακροεντολή θα επιστρέφει πάντα το ίδιο αποτέλεσμα όπως fgetc .
Αποδοσεις
Η

Getc είναι μερικές φορές υλοποιείται ως μια μακροεντολή για να ενισχύσει την απόδοση των εφαρμογών αυξάνοντας την ταχύτητα εκτέλεσης και μειώνοντας επεξεργασίας γενικά. Όταν χρησιμοποιείτε fgetc σε ένα πρόγραμμα , οι επεξεργαστή και τη μνήμη των πόρων που δαπανώνται παρακολούθηση της εκτέλεσης των εντολών της συνάρτησης , οι μεταβλητές μητρώου δημιουργήθηκαν, καθώς και την πραγματική εργασία που πρέπει να γίνει για να επιστρέψει έναν χαρακτήρα από το ρεύμα δεδομένων . Δεδομένου ότι η μακροοικονομική getc καταρτίζεται inline πριν από το πρόγραμμα τρέχει ποτέ , δεν υπάρχει καμία λειτουργία γενικά και η εφαρμογή σας μπορεί να τρέξει πιο γρήγορα .

Η Παρενέργειες
Η

Μερικές φορές είναι προτιμότερο να χρησιμοποιείται αντί του fgetc getc προκειμένου να αποφευχθούν σφάλματα που προκαλούνται από μακρο παρενέργειες επέκτασης. Παρενέργειες μπορεί να εμφανιστούν όταν ένα macro getc δίνεται παραμέτρους που είναι εκφράσεις μάλλον μεταβλητές . Ακατάλληλη επέκταση μακροεντολών μπορεί να προκαλέσει πολλές προσπάθειες για να έχουν πρόσβαση στο ρεύμα δεδομένων που μπορεί να προκαλέσει απροσδόκητα αποτελέσματα. Αυτό μπορεί να προληφθεί με τη χρήση fgetc αντί ή τον υπολογισμό της έκφρασης πρώτη , περνώντας στη συνέχεια η προκύπτουσα μεταβλητή ή δείκτη σε Getc .
Εικόνων Cross Συμβατότητα
Η

fgetc ως συνάρτηση είναι βρέθηκαν σε όλα τα compilers C , που συμμορφώνονται με το αμερικανικό Εθνικό Ινστιτούτο Προτύπων ή πρότυπο ANSI C . Όταν πρόκειται για την Getc , όμως, τα πράγματα δεν είναι τόσο συχνά πρότυπο. Μερικές φορές , getc ορίζεται ως απλά ως ένα άλλο όνομα για fgetc :

# define getc ( __stream ) fgetc ( __stream )

Όταν getc υλοποιείται ως μια συνάρτηση , όμως, ταυτόχρονα να διατηρηθεί η συμβατότητα γλώσσα με άλλους compilers C και την εξάλειψη της δυνατότητας της μακροοικονομικής παρενέργειες .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα