1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> ΟΜΙΛΗΤΗΣ 1: Έτσι νιώθω σαν να έχω την τάση να γράψτε printf hello world ή printf 3 00:00:04,010 --> 00:00:08,160 αρκετά συχνά γεια τοις εκατό s στα πλαίσια όπου θέλετε να εκτυπώσετε μια 4 00:00:08,160 --> 00:00:11,360 εγχόρδων, μερικές φορές ζητώντας από την μέρος των χρηστών του εν λόγω σειρά. 5 00:00:11,360 --> 00:00:14,980 Λοιπόν, δεν θα ήταν ωραίο αν δημιουργήσαμε συνάρτηση της δικής μας κάλεσε, 6 00:00:14,980 --> 00:00:19,900 λένε, το όνομα εκτύπωσης, των οποίων ο σκοπός της ζωής είναι απλά για να εκτυπώσετε γεια κόμμα 7 00:00:19,900 --> 00:00:24,560 έτσι-και-έτσι αποδεχόμενοι το έτσι-και-έτσι ως επιχείρημα για αυτή τη λειτουργία; 8 00:00:24,560 --> 00:00:29,220 Μπορούμε να δηλώσουμε μια συνάρτηση της δικής μας ακριβώς όπως μπορούμε σε Scratch ως εξής. 9 00:00:29,220 --> 00:00:35,280 >> Με άλλα λόγια, ας υποθέσουμε ότι θα ήθελα να printf το όνομά σας και στη συνέχεια να ζητήσει από το χρήστη 10 00:00:35,280 --> 00:00:39,470 για το όνομα του ή της με σπάγκο s ισούται με GetString. 11 00:00:39,470 --> 00:00:42,060 Και τότε θέλω να καλέσετε μια συνάρτηση κάλεσε το όνομά εκτύπωσης 12 00:00:42,060 --> 00:00:44,340 περνώντας ένα s ως είσοδο του. 13 00:00:44,340 --> 00:00:47,770 >> Τώρα, δυστυχώς, δεν υπάρχει καμία λειτουργία κάλεσε το όνομά εκτύπωσης σε C ή σε 14 00:00:47,770 --> 00:00:48,950 η βιβλιοθήκη CS50. 15 00:00:48,950 --> 00:00:51,220 Αλλά δεν έχει σημασία, γιατί μπορεί να το κάνουμε και εμείς. 16 00:00:51,220 --> 00:00:54,560 Για να δηλώσετε μια λειτουργία της δικής μας και Στη συνέχεια το εφαρμόσει, μπορούμε απλά να κάνει 17 00:00:54,560 --> 00:00:59,000 κάποια περιθώρια σε αυτό το αρχείο και να δηλώνουν αυτή η λειτουργία, ως εξής, άκυρα - 18 00:00:59,000 --> 00:01:01,900 που σημαίνει ότι η λειτουργία δεν είναι στην πραγματικότητα πρόκειται να επιστρέψει κάτι, 19 00:01:01,900 --> 00:01:03,890 μολονότι θα έχει μια παρενέργεια - 20 00:01:03,890 --> 00:01:08,030 εκτυπώσετε το όνομα, και στη συνέχεια ας προσδιορίζει παρενθέσεις ότι το όνομα εκτύπωσης αναμένει 21 00:01:08,030 --> 00:01:09,680 το επιχείρημα του τύπου string. 22 00:01:09,680 --> 00:01:12,180 Και σε γενικές γραμμές, εμείς θα σκεφτούμε του ότι ως όνομα. 23 00:01:12,180 --> 00:01:15,140 >> Και ας ανοίξουμε κηδεμόνα μας και να κλείσει στήριγμα μας. 24 00:01:15,140 --> 00:01:21,930 Και τότε printf μέσα γεια κόμμα νέο όνομα της γραμμής κόμμα τοις εκατό s. 25 00:01:21,930 --> 00:01:24,570 Με άλλα λόγια, ακόμα κι αν αυτό η λειτουργία είναι μόνο μια γραμμή κώδικα, 26 00:01:24,570 --> 00:01:27,290 δεν έχει πλέον κάποιο υψηλότερο επίπεδο με σκοπό να εκτυπώσετε 27 00:01:27,290 --> 00:01:28,950 το όνομα κάποιου ατόμου με ένα χαιρετισμό. 28 00:01:28,950 --> 00:01:33,115 >> Τώρα, μέσα από τις κύριες, παρατηρήσετε ότι είμαι καλώντας το όνομά εκτύπωσης με πέρασμα ενός s. 29 00:01:33,115 --> 00:01:35,830 Και γι 'αυτό τώρα φαίνεται να έχουν ένα πλήρες πρόγραμμα. 30 00:01:35,830 --> 00:01:38,650 Η μόνη διαφορά είναι από τους άλλους έχουμε γράψει είναι ότι όχι μόνο δεν 31 00:01:38,650 --> 00:01:42,480 αυτό το πρόγραμμα έχουν κύρια, έχει επίσης μια δήλωση και την εφαρμογή των 32 00:01:42,480 --> 00:01:44,740 Το όνομά εκτύπωσης, μια συνάρτηση των δικών μου. 33 00:01:44,740 --> 00:01:49,505 >> Ας τώρα να μεταγλωττίσετε το πρόγραμμά μου με τη μάρκα λειτουργία μηδέν, και να το εκτελέσετε με τελεία 34 00:01:49,505 --> 00:01:51,080 κάθετο λειτουργία μηδέν. 35 00:01:51,080 --> 00:01:53,390 Όταν σας ζητηθεί το όνομά μου Θα πληκτρολογήσετε David. 36 00:01:53,390 --> 00:01:55,830 Και εγώ πραγματικά είμαι χαιρέτησε με το "Γεια σου, Ντέιβιντ." 37 00:01:55,830 --> 00:02:00,160 >> Τώρα, αποδεικνύεται έχω πολύ σκόπιμα δηλωθεί το όνομα εκτύπωσης πάνω από την κύρια, 38 00:02:00,160 --> 00:02:03,860 έτσι λέει C εκ των προτέρων ότι υπάρχει υπάρχει μια λειτουργία που ονομάζεται εκτύπωση 39 00:02:03,860 --> 00:02:06,930 το όνομα, έτσι ώστε θα μπορούσα να χρησιμοποιήσω αργότερα στην κύρια. 40 00:02:06,930 --> 00:02:11,610 Τώρα, είχα, αντί να θέσει το όνομα εκτύπωσης σε το κάτω μέρος του αρχείου μου, όπως ειλικρινά 41 00:02:11,610 --> 00:02:15,310 ίσως θα πρέπει να το πράξουν ότι κύρια ερείπια το πρώτο πράγμα που έχω ή 42 00:02:15,310 --> 00:02:18,450 άλλος χρήστης βλέπει στον κώδικά μου, αποδεικνύεται ότι ο κωδικός μου είναι 43 00:02:18,450 --> 00:02:19,780 Δεν πρόκειται για την κατάρτιση. 44 00:02:19,780 --> 00:02:23,610 >> Συγκεκριμένα, αν πάω πίσω μου παράθυρο τερματικού και λειτουργία βεβαιωθείτε λειτουργία 45 00:02:23,610 --> 00:02:26,120 μηδέν τώρα, παρατηρούμε ότι είμαι φώναξε. 46 00:02:26,120 --> 00:02:30,340 Αν έχω κύλιση προς τα πάνω στο παράθυρο του τερματικού μου, Θα δείτε αυτό το πρώτο σφάλμα στο κόκκινο, 47 00:02:30,340 --> 00:02:33,120 σιωπηρή δήλωση λειτουργία ονόματος εκτύπωσης. 48 00:02:33,120 --> 00:02:34,220 >> Τώρα, τι σημαίνει αυτό; 49 00:02:34,220 --> 00:02:37,190 Λοιπόν, ακόμα κι αν έχω υλοποιούνται εκτυπώσετε το όνομα σε αυτό το αρχείο, εγώ δεν έχω 50 00:02:37,190 --> 00:02:40,080 εφαρμοστεί πριν έχω χρησιμοποίησε στο κύριο. 51 00:02:40,080 --> 00:02:43,160 Τώρα, θα μπορούσαμε να πάμε πίσω στο παλιό έκδοση και βάλτε το όνομα εκτύπωσης 52 00:02:43,160 --> 00:02:44,450 εφαρμογή επάνω στην κορυφή. 53 00:02:44,450 --> 00:02:48,730 >> Αλλά μπορώ να αντί απλά να δώσει μια υπόδειξη C ότι υπάρχει μια λειτουργία για να έρθει. 54 00:02:48,730 --> 00:02:55,390 Συγκεκριμένα, πάνω από την κύρια μπορώ να δηλώσω εκτυπώσετε το όνομα ακριβώς όπως έκανα νωρίτερα, αλλά 55 00:02:55,390 --> 00:02:59,450 τέλος της γραμμής με ένα ερωτηματικό, με τον τρόπο αυτό υπόσχεται να εφαρμοστούν, αλλά δεν έχουν ακόμη 56 00:02:59,450 --> 00:03:02,180 στην πραγματικότητα υλοποιούν τη λειτουργία κάλεσε το όνομά εκτύπωσης. 57 00:03:02,180 --> 00:03:05,860 Τότε μπορώ να έχω κύρια στην κορυφή του μου αρχείο όπως ήλπιζα, και μπορώ πραγματικά 58 00:03:05,860 --> 00:03:07,440 εφαρμόσουν το όνομα γράμματα στο κάτω μέρος. 59 00:03:07,440 --> 00:03:12,860 >> Αν τώρα επιστρέψουμε στο παράθυρο τερματικού μου και να μεταγλωττίσετε ξανά τη λειτουργία μηδέν με μάρκα, 60 00:03:12,860 --> 00:03:14,390 αυτή τη φορά που καταρτίζει. 61 00:03:14,390 --> 00:03:18,240 Και αν μπορώ να τρέξει με dot λειτουργία κάθετο μηδέν, παρέχοντας το όνομα μου, είμαι 62 00:03:18,240 --> 00:03:20,650 χαιρετίστηκε ως «Γεια σου, Ντέιβιντ." 63 00:03:20,650 --> 00:03:22,268