1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> 1 SPEAKER: אז אני מרגישה שאני נוטה לכתוב printf hello world או printf 3 00:00:04,010 --> 00:00:08,160 שלום אחוזים ים לעתים קרובות למדי בהקשרים שבו אני רוצה להדפיס 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 אומר, שם הדפסה, שמטרתה בחיים הוא פשוט להדפיס hello פסיק 7 00:00:19,900 --> 00:00:24,560 כך וכך על ידי קבלה כך וכך כטיעון לפונקציה ש? 8 00:00:24,560 --> 00:00:29,220 אנחנו יכולים להכריז על פונקציה משלנו בדיוק כפי שאנו יכולים בגרד באופן הבא. 9 00:00:29,220 --> 00:00:35,280 >> במילים אחרות, נניח שאני רוצה printf את השם שלך ולאחר מכן לשאול את המשתמש 10 00:00:35,280 --> 00:00:39,470 לשם שלו או שלה עם מחרוזת ים שווה GetString. 11 00:00:39,470 --> 00:00:42,060 ולאחר מכן אני רוצה לקרוא לפונקציה שם הדפסה בשם 12 00:00:42,060 --> 00:00:44,340 עובר של כקלט שלה. 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 טיעון מסוג מחרוזת. 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 שלום פסיק שמו של אחוזים החדש פסיק קו. 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 >> עכשיו בתוך עיקרי, שים לב שאני קורא בשם הדפסה על ידי העברה של. 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 כאשר יתבקשו להזין את השם שלי אני אקליד בדוד. 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 ואם אני מפעיל את זה עם פונקצית לוכסן נקודה אפס מתן השם שלי, אני 62 00:03:18,240 --> 00:03:20,650 התקבל כ" שלום, דוד ". 63 00:03:20,650 --> 00:03:22,268