[Powered by Google Translate] CHRIS GERBER: Μια λειτουργία είναι μια σειρά από βήματα μέσα σε ένα
μεγαλύτερο πρόγραμμα, το οποίο συνήθως προορίζεται να ονομάζεται
πολλές φορές και από πολλαπλές άλλες τοποθεσίες
το πρόγραμμα.
Κατά τη δημιουργία μια συνάρτηση Γ, μία από τις απαιτήσεις είναι η
καθορίσετε έναν τύπο τιμή επιστροφής.
Η απλούστερη περίπτωση είναι μια κατάσταση όπου ο καλών
κωδικός δεν ασχολείται με το αποτέλεσμα της λειτουργίας.
Αυτό μπορεί να συμβεί όταν εκτυπώνετε δεδομένα για το
οθόνη του χρήστη, όπως με printf.
Σε αυτή την περίπτωση, μπορούμε να δηλώσουμε μια τιμή επιστροφής
να είναι άκυρη τύπου.
Χρησιμοποιώντας κενό λέει απλά ο compiler ότι δεν
αξία θα πρέπει να επιστραφεί.
Ας δούμε τι μοιάζει αυτό.
>> Ας πούμε ότι έχουμε μια λειτουργία που ονομάζεται say_hello ότι
παίρνει ένα επιχείρημα.
Θα δώσετε το όνομα ενός ατόμου και θα εμφανιστεί ένα χαιρετισμό
στην οθόνη.
Το όνομα θα είναι του τύπου char *.
Και θα διευκρινίζει ότι ως επιχείρημα.
Η εφαρμογή μου δεν χρειάζεται να ξέρει τι τυπώθηκε ή εάν
τυπώθηκε.
Έτσι, η τιμή θα είναι επιστροφή του κενού τύπου.
Η λειτουργία αυτή μπορεί να εκτυπωθεί στην οθόνη με μια εντολή όπως
printf ("Γεια σας,% s \ n
", Όνομα)?.
Το χαιρετισμό θα εμφανιστεί και ο έλεγχος θα περάσει
πίσω στην καλούσα κώδικα.
Ένα πράγμα που πρέπει να σημειωθεί είναι ότι όταν ο τύπος τιμή επιστροφής είναι άκυρη,
δεν χρειάζεται να περιλαμβάνει απόδοση
δήλωση στην λειτουργία.
Αν επιλέξετε να συμπεριλάβετε ένα, δεν περιλαμβάνουν μια τιμή επιστροφής
ως επιχείρημα.
>> Σε ορισμένες περιπτώσεις, είναι λογικό να επιστρέψει ένα
αξία από μια λειτουργία.
Ας πούμε ότι γράφαμε μια λειτουργία που ονομάζεται add_floats.
Θα δώσετε δύο επιχειρήματα, και οι δύο πλωτήρες,
ονομάζεται πρώτη και δεύτερη.
Και θα μας πει ποιο είναι το άθροισμα αυτών των αρμάτων είναι.
Ξέρουμε ότι αν προσθέσουμε δύο πλωτήρες μαζί, το αποτέλεσμα
θα είναι float.
Δεδομένου ότι, επιλέγουμε ένα είδος επιστροφής του πλωτήρα.
Αυτή η λειτουργία θα πραγματοποιεί τον υπολογισμό αυτό και να επιστρέψετε
οι τιμές σε μια δήλωση, όπως την επιστροφή
+ πρώτο δευτερόλεπτο?.
Όταν ο έλεγχος περνά πίσω στον καλούντα κώδικα, η
τιμή που προκύπτει είναι τώρα διαθέσιμες στην εν λόγω κώδικα.
Μπορούμε να αποθηκεύσουμε αυτή την τιμή, όπως έτσι: αποτέλεσμα float =
add_floats (3,14, 1,62
)?.
Καταλήγουν σε αυτή την περίπτωση θα περιέχει πλέον την τιμή 4,76.
>> Ως υπενθύμιση, τιμές κινητής υποδιαστολής είναι ανακριβής.
Έτσι, αν αυτό ήταν ένα οικονομικό υπολογισμό, χρησιμοποιώντας δολάρια και
σεντ, μπορεί να θέλετε να εξετάσει ένα συγκεκριμένο τύπο δεδομένων, όπως
int και εκτελεί τον υπολογισμό στις πένες.
>> Μια άλλη περίπτωση που θα θέλαμε να επιστρέψει μια τιμή από ένα
λειτουργία είναι όταν θέλουμε να ξέρουμε αν μια λειτουργία ήταν
επιτυχής.
Αν δεν ήταν επιτυχής, θα μπορεί επίσης να θέλουν να γνωρίζουν τι είδους
σφάλμα.
Ας πούμε ότι προσπαθείτε να ανοίξετε ένα αρχείο στο δίσκο για να μετρήσει
ο αριθμός των χαρακτήρων σε αυτό.
Αν το αρχείο δεν μπορεί να ανοίξει, θέλουμε να είναι σε θέση να σταματήσει και
πει το χρήστη για το πρόβλημα.
>> Θα καλέσετε count_file_chars λειτουργία μας και θα
πάρτε ένα επιχείρημα.
Θα περάσει στο όνομα του αρχείου χρησιμοποιώντας ένα
char * ονομάζεται αρχείου.
Η λειτουργία αυτή μπορεί να μοιάζει κάτι σαν αυτό.
Σε αυτό το παράδειγμα, θα περιμέναμε η καταμέτρηση επέστρεψε στην
είναι 0 ή περισσότερο.
Αυτό μας αφήνει τις αρνητικές ακέραιοι να
χρήση ως φρουρός αξίες.
Μια τιμή φρουρός είναι απλά μια ειδική τιμή που δεν είναι
νόμιμα στοιχεία, αλλά δεν μεταφέρουν πληροφορίες.
Εδώ, αν επιστρέψω μια -1 έως την κλήση κώδικα, είμαι
πραγματικά στέλνοντας το μήνυμα ότι ένα σφάλμα κατά την
προσπαθεί να αποκτήσει πρόσβαση στο αρχείο.
Θα μπορούσα στη συνέχεια ελέγξτε την τιμή επιστροφής για να καθορίσει εάν μου
κλήση της συνάρτησης ήταν επιτυχής.
Αν ο αριθμός ήταν 0 ή μεγαλύτερη, θα ήθελα να ξέρω το
αριθμό των χαρακτήρων του αρχείου.
Αν, ωστόσο, ο αριθμός ήταν μικρότερη από 0, θα μπορούσα απλά
εκτύπωση ότι το πρόβλημα είχε συμβεί.
Ένα trade-off που εξετάζει είναι ότι επιφυλάσσοντας όλα τα
αρνητικές τιμές ως τιμές δεικτών, υποθέτοντας αυτό είναι ένα
Ακέραιος 32-bit, έχω λάβει ουσιαστικά μακριά γύρω από
2 δισεκατομμύρια πιθανές τιμές επιστροφής.
>> Τύποι τιμή επιστροφής είναι ένα από τα πιο σημαντικά στοιχεία της
κλήσεις συναρτήσεων.
Ας ελπίσουμε ότι αυτή η σύντομη επισκόπηση έχει βοηθήσει να σκεφτείτε
τρεις βασικούς τύπους: void, αξίες αποτέλεσμα, και οι τιμές δεικτών,
και όταν καθένα από τα τρία μπορεί να είναι
κατάλληλο για σας κωδικό.
Ευχαριστώ για την προσοχή.