1 SPEAKER: אז אני מרגישה שאני נוטה לכתוב printf hello world או printf שלום אחוזים ים לעתים קרובות למדי בהקשרים שבו אני רוצה להדפיס מחרוזת, לפעמים שואל חלק משתמש של מחרוזת ש. ובכן, זה לא יהיה נחמד אם יצרנו פונקציה משלנו נקראת, אומר, שם הדפסה, שמטרתה בחיים הוא פשוט להדפיס hello פסיק כך וכך על ידי קבלה כך וכך כטיעון לפונקציה ש? אנחנו יכולים להכריז על פונקציה משלנו בדיוק כפי שאנו יכולים בגרד באופן הבא. במילים אחרות, נניח שאני רוצה printf את השם שלך ולאחר מכן לשאול את המשתמש לשם שלו או שלה עם מחרוזת ים שווה GetString. ולאחר מכן אני רוצה לקרוא לפונקציה שם הדפסה בשם עובר של כקלט שלה. עכשיו למרבה הצער, אין פונקציה קרא בשם הדפסה ב-C או ב ספריית cs50. אבל לא משנה, כי אנחנו יכול לעשות את זה בעצמנו. להכריז על פונקציה משלנו ו לאחר מכן ליישם אותו, אנחנו יכולים פשוט לעשות קצת מקום בקובץ זה ולהכריז פונקציה זו כדלקמן, מבוטלת - מסמן כי הפונקציה לא באמת הולך להחזיר משהו, למרות שיהיה לה תופעת לוואי - להדפיס את השם, ואז בואו תציינו ב סוגריים ששם הדפסה מצפה טיעון מסוג מחרוזת. ובאופן כללי, אנחנו חושבים מזה כהשם. ובואו לפתוח הסד שלנו ולסגור את הסד שלנו. ואז בתוך printf שלום פסיק שמו של אחוזים החדש פסיק קו. במילים אחרות, למרות שזה פונקציה רק ​​שורה אחת של קוד, זה עכשיו יש כמה גבוה יותר מטרת רמה להדפסה שמו של מישהו עם ברכה. עכשיו בתוך עיקרי, שים לב שאני קורא בשם הדפסה על ידי העברה של. וכך אני נראה עכשיו יש תכנית מלאה. להיות מאחרים ההבדל היחיד שכתבנו הוא שלא רק עושה תכנית זו הייתה עיקרי, יש לה גם הכרזה ויישום של שם הדפסה, פונקציה משלי. בואו עכשיו לקמפל את התכנית שלי עם איפור פונקציה לאפס, ולהפעיל אותו עם נקודה סלאש פונקצית אפס. כאשר יתבקשו להזין את השם שלי אני אקליד בדוד. ואני אכן אני ברכתי עם "שלום, דוד". עכשיו, מתברר לי מאוד במכוון שם הדפסה הכריז מעל עיקרי, וכך אומר לי C מראש שיש קיים פונקציה שנקראת הדפסה שם, כך שאני יכול להשתמש אותו מאוחר יותר בראשי. עכשיו, אם הייתי במקום לשים את השם של הדפסה ב החלק התחתון של התיק שלי, כפי שאני בכנות כנראה צריך לעשות כדי ששרידים העיקריים הדבר שאני או הראשון משתמש אחר רואה בקוד שלי, מתברר שהקוד שלי הוא לא הולך לקמפל. באופן ספציפי, אם אני חוזר לשלי חלון ולהפעיל מסוף להפוך את הפונקציה אפס עכשיו, שים לב שאני צועק על. אם אני לגלול מעלה בחלון המסוף שלי, אני תראה את השגיאה ראשונה באדום, הצהרה המרומזת של שם הדפסת פונקציה. עכשיו, מה זה אומר? ובכן, למרות שאני כבר מיושם להדפיס את השם בקובץ זה, יש לי לא יישם אותו לפני שיש לי השתמשתי בו בעיקרי. עכשיו, אנחנו יכולים לחזור לבן גרסת הדפסה ושם לשים של יישום למעלה. אבל אני יכול רק לתת לי במקום C רמז שיש פונקציה הבאות. באופן ספציפי, מעל עיקרי שאני יכול להכריז להדפיס את השם בדיוק כפי שעשיתי קודם לכן, אבל לסיים את השורה בנקודת פסיק, ובכך מבטיח ליישם, אבל עדיין לא למעשה יישום הפונקציה קרא בשם הדפסה. אז אני יכול להיות ראשי בחלק העליון שלי להגיש כמו שקיוויתי, ולמעשה אני יכול ליישם שם הדפסה בתחתית. אם אני עכשיו אחזור לחלון המסוף שלי ולהדר מחדש פונקציה אפס עם איפור, הפעם זה הידור. ואם אני מפעיל את זה עם פונקצית לוכסן נקודה אפס מתן השם שלי, אני התקבל כ" שלום, דוד ".