سرور 1: لذلك أنا أشعر أنني أميل إلى إرسال printf مرحبا العالم أو printf مرحبا في المئة في كثير من الأحيان و في سياقات حيث أريد لطباعة سلسلة، وأحيانا يسأل الجزء المستخدم من هذه السلسلة. حسنا، لن يكون ذلك جميلا لو أنشأنا وظيفة من منطقتنا ودعا، ويقول اسم الطباعة، هدفها في الحياة هو ببساطة لطباعة مرحبا فاصلة كذا وذلك من خلال الموافقة على ذلك وكذا كحجة لتلك الوظيفة؟ يمكن أن نعلن وظيفة من منطقتنا فقط ما في وسعنا في خدش على النحو التالي. وبعبارة أخرى، لنفترض أود أن printf اسمك وثم يطلب من المستخدم لاسم له أو لها مع سلسلة ق يساوي GetString. ثم أريد أن استدعاء دالة ودعا اسم الطباعة تمر ليالي كمدخل لها. الآن للأسف، لا توجد وظيفة ودعا اسم الطباعة في C أو في مكتبة CS50. ولكن لا يهم، لأننا يمكن أن تجعل من أنفسنا. للإعلان عن وظيفة من جانبنا و ثم تنفيذه، يمكننا أن نجعل ببساطة بعض الغرف في هذا الملف وتعلن هذه الوظيفة على النحو التالي، الفراغ - مما يدل على أن وظيفة ليست يحدث فعلا في العودة شيئا، على الرغم من أنه سيكون لديك أحد الآثار الجانبية - طباعة الاسم، ثم دعونا في تحديد الأقواس بهذا الاسم الطباعة تتوقع حجة من نوع السلسلة. وبشكل عام، فإننا سوف نفكر لذلك كاسم. ودعونا فتح هدفين لدينا وأغلق هدفين لدينا. ثم printf داخل مرحبا فاصلة الجديد اسم خط فاصلة في المئة ق. وبعبارة أخرى، على الرغم من هذا وظيفة من سطر واحد فقط من التعليمات البرمجية، فإنه لا توجد لديها الآن بعض أعلى الغرض مستوى لطباعة اسم شخص ما مع التحية. الآن داخل الرئيسي، لاحظ أنني داعيا اسم الطباعة عن طريق تمرير ق. وهكذا يبدو لي الآن أن يكون برنامج كامل. والفرق الوحيد هو من الآخرين لدينا كتب هو أن ليس فقط لا هذا البرنامج قد الرئيسي، كما أن لديها إعلان وتنفيذ اسم المطبوعة، وهي وظيفة من بلدي. دعونا الآن تجميع برنامجي مع جعل وظيفة الصفر، وتشغيله مع نقطة خفض وظيفة الصفر. عند المطالبة لاسمي سوف اكتب في ديفيد. وأنا في الواقع أشعر استقبال مع "مرحبا، ديفيد." الآن، اتضح أنا عمدا جدا الاسم المعلن للطباعة الرئيسية أعلاه، وبالتالي نقول C مقدما أن هناك وجود وظيفة تسمى الطباعة اسم كي أتمكن من استخدام في وقت لاحق في الرئيسية. الآن، لو كنت بدلا من ذلك وضع اسم الطباعة في الجزء السفلي من الملف الخاص بي، وأنا بصراحة ربما ينبغي أن تفعل ذلك أنه لا يزال الرئيسية الشيء الأول الذي أنا أو يرى مستخدم آخر في قانون بلدي، اتضح أن قانون بلدي هو لن تجميع. على وجه التحديد، إذا أعود إلى بلدي نافذة طرفية وتشغيل جعل وظيفة الصفر الآن، لاحظ أنني صرخت في. إذا كنت انتقل لأعلى في إطار المحطة الطرفية بلدي، سوف نرى هذا الخطأ الأول باللون الأحمر، الإعلان الضمني اسم وظيفة الطباعة. الآن، ماذا يعني ذلك؟ حسنا، على الرغم من أنني قد نفذت طباعة الاسم في هذا الملف، لقد لا تنفيذه قبل عندي استخدامه في الرئيسية. الآن، يمكننا أن نعود إلى القديم نسخة ووضع اسم الطباعة تنفيذ حتى أعلى. ولكن يمكنني أن بدلا من مجرد إعطاء C تلميحا أن هناك وظيفة قادمة. على وجه التحديد، وفوق الرئيسي يمكنني أن تعلن طباعة اسم تماما كما فعلت في وقت سابق، ولكن إنهاء الخط مع فاصلة منقوطة، وبالتالي واعدا لتنفيذ ولكن ليس بعد تنفيذ في الواقع وظيفة ودعا اسم الطباعة. أنا يمكن أن يكون ثم الرئيسية في الجزء العلوي من بلدي ملف كما كنت آمل، ويمكنني في الواقع تنفيذ الطباعة اسم في الأسفل. إذا أنا الآن العودة إلى بلدي نافذة طرفية وظيفة إعادة ترجمة الصفر مع جعل، هذه المرة يجمع. وإذا كنت تشغيله مع وظيفة مائل نقطة الصفر توفير اسمي، وأنا كما استقبل "مرحبا، ديفيد."