1 00:00:00,000 --> 00:00:00,160 2 00:00:00,160 --> 00:00:04,010 >> سرور 1: لذلك أنا أشعر أنني أميل إلى إرسال printf مرحبا العالم أو 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 ويقول اسم الطباعة، هدفها في الحياة هو ببساطة لطباعة مرحبا فاصلة 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