Βίντεο: Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 - ΣΥΝΑΡΤΗΣΕΙΣ ΚΑΙ ΑΝΑΔΡΟΜΗ - ΘΕΩΡΙΑ 2 από 4 - ΚΑΘΟΛΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ 2024
Τι συμβαίνει όταν δεν κάνετε πρωτότυπο; Όπως και με οτιδήποτε στον προγραμματισμό C, όταν πηγαίνετε επάνω, ο μεταγλωττιστής ή ο σύνδεσμος σάς ενημερώνει με ένα μήνυμα σφάλματος - ή το πρόγραμμα απλά δεν λειτουργεί σωστά. Δεν είναι το τέλος του κόσμου - όχι, όχι σαν να προγραμματίζετε ένα στρατιωτικό ρομπότ ή να σχεδιάζετε γενετικό κώδικα για ένα νέο είδος φλερτ της Αφροδίτης.
ΒΑΣΙΚΗ ΛΕΙΤΟΥΡΓΙΑ; NO RETURN
#include void prompt (); / * πρωτότυπο λειτουργίας * / int main () {int loop; είσοδος char [32]; βρόχος = 0; (βρόχος),
Άσκηση 1 : Τροποποιήστε τον πηγαίο κώδικα από τη Βασική Λειτουργία, Όχι Επιστροφή Σχολίαστε το πρωτότυπο από τη Γραμμή 3. Κατασκευάστε το αποτέλεσμα
Τα σφάλματα του Compiler είναι υπέροχα πράγματα, απολαυστικά ακριβή, αλλά εντελώς κρυπτά, εδώ είναι το μήνυμα λάθους που δημιουργείται από τον Κωδικό:: Αποκλεισμός, αν και μόνο τα σχετικά μέρη του μηνύματος:
13 Προειδοποίηση: 'προειδοποίηση': Προηγούμενη σιωπηρή δήλωση 'prompt' ήταν εδώ
Η πρώτη προειδοποίηση εμφανίζεται στη Γραμμή 13 στο αρχείο πηγαίου κώδικα, όπου η συνάρτηση prompt () χρησιμοποιείται μέσα στο κύριο ().Ο μεταγλωττιστής σας λέει ότι χρησιμοποιείτε μια συνάρτηση χωρίς πρωτότυπο.Όπως δηλώνει το μήνυμα σφάλματος, δηλώνετε σιωπηρά μια συνάρτηση.Αυτό είναι ένα όχι όχι, αλλά όχι πλήρες λάθος. >
Η τελική προειδοποίηση είναι μια αναφορά για το πού κλήθηκε η λειτουργία, και πάλι στη Γραμμή 13.
Για να το βγάλουμε σύντομα: Ο μεταγλωττιστής δεν έχει ιδέα τι συμβαίνει με τη συνάρτηση prompt (). Ο κώδικας σας συντάσσεται, αλλά το τρέξιμο είναι επικίνδυνο.
Άσκηση
2 : Επεξεργαστείτε τον πηγαίο κώδικα από την Άσκηση 10-3. Καταργήστε το πρωτότυπο λειτουργίας που σχολιάστηκε στη Γραμμή 3. Αποκοπή και επικόλληση (μετακίνηση) της λειτουργίας prompt () από το κάτω μέρος του καταλόγου πηγαίου κώδικα προς τα επάνω, πάνω από τη λειτουργία main (). Αποθήκευση, δημιουργία και εκτέλεση. Αποφεύγοντας τη λειτουργία Πρωτότυπο παρουσιάζει τη λύση για την Άσκηση 2.
ΑΠΟΦΥΓΗ ΤΗΣ ΠΡΟΤΥΠΩΣΗΣ ΛΕΙΤΟΥΡΓΙΑΣ
#include / * Προβολή οθόνης * / void prompt (void) {printf ("C: DOS> int main () {int βρόχος; είσοδος char [32]; βρόχος = 0; ενώ (βρόχος <5) {prompt (); fgets (είσοδος, 31, stdin); loop = loop + 1;} επιστροφή (0);}
Συντάσσοντας πρώτα τη λειτουργία main (), ακολουθούμενη από άλλες λειτουργίες, επιτρέπει την καλύτερη αναγνωσιμότητα, αν και είστε ελεύθεροι να βάζετε πρώτα τις δικές σας λειτουργίες.Και αν δεν το κάνετε, μην ξεχνάτε ότι άλλοι προγραμματιστές μπορούν να το κάνουν έτσι, γι 'αυτό μην εκπλαγείτε όταν το βλέπετε.
Μηνύματα σφαλμάτων μεταγλωττιστή στον Κωδικό:: Τα μπλοκ έχουν παρενθέσεις μετά από αυτά. Τα παρενθετικά σχόλια αφορούν τον διακόπτη
ή την παραδοσιακή επιλογή γραμμής εντολών, ο οποίος επιτρέπει τον έλεγχο για μια συγκεκριμένη προειδοποίηση. Για παράδειγμα, τα μηνύματα σφάλματος από την Άσκηση 1 διαβάζονται ολόκληρα: 11 Προειδοποίηση: σιωπηρή δήλωση της λειτουργίας "prompt" (-Wimplicit-function-declaration) 20 Προειδοποίηση: >