[Powered by Google Translate] CHRIS GERBER: دالة هو عبارة عن سلسلة من الخطوات في غضون
برنامج أكبر، الذي يهدف عادة ليتم استدعاؤها
عدة مرات من مواقع أخرى ومتعددة في
البرنامج.
عند إنشاء وظيفة C، واحدة من متطلبات هو
تحديد نوع قيمة الإرجاع.
أبسط حالة هي الحالة التي يكون فيها الاتصال
غير معني الرمز مع ناتج الدالة.
وهذا قد يكون الحال عندما نقوم بطباعة البيانات إلى
المستخدم الشاشة، كما هو الحال مع printf.
في هذه الحالة، يمكن نعلن قيمة إرجاع
أن يكون من نوع الفراغ.
استخدام الفراغ يقول ببساطة أنه لا يوجد مترجم
سيتم إرجاع القيمة.
دعونا نرى ما يشبه هذا.
>> دعنا نقول أن لدينا دالة يسمى say_hello أن
يأخذ واحدة الحجة.
سنقوم تمريرها اسم الشخص وأنه سيتم عرض تحية
على الشاشة.
سوف يكون الاسم من نوع شار *.
وسنقوم بتحديد أن كوسيطة.
طلبي لا تحتاج إلى معرفة ما إذا كان طبع أو
وقد طبع.
وبالتالي فإن قيمة الإرجاع تكون باطلة نوع.
وهذا قد ظيفة الطباعة على الشاشة مع أمر مثل
printf ("مرحبا،٪ S \ N
"، اسم)؛
سوف يتم عرض المعايدة وسيتم تمرير التحكم
عودة إلى رمز الاستدعاء.
شيء واحد هو أن نلاحظ أنه عندما اكتب قيمة الإرجاع هي باطلة،
أنت لست بحاجة إلى أن تشمل عودة
بيان في وظيفة.
إذا اخترت لتشمل واحدة، لا تشمل قيمة إرجاع
كوسيطة.
>> في بعض الحالات، فمن المنطقي لإرجاع
قيمة من وظيفة.
دعونا نقول أننا كتابة دالة يسمى add_floats.
سنقوم تمريرها حجتين، سواء يطفو،
دعا الأولى والثانية.
وسوف تقول لنا ما مجموع تلك العوامات هو.
ونحن نعلم أنه إذا كنا معا إضافة اثنين من العوامات، والنتيجة
سيكون عدد عشري.
بالنظر إلى أن، نختار نوع تعويم عودة.
وسوف تؤدي هذه الوظيفة هذا الحساب والعودة
القيم في بيان مثل عودة
الأول + الثاني؛.
عندما يتم تمرير التحكم إلى رمز الدعوة، في
مما أدى القيمة متاحة الآن لذلك القانون.
يمكننا تخزين هذه القيمة كما يلي: نتيجة تعويم =
add_floats (3.14، 1.62
)؛
من شأنه أن يؤدي في هذه الحالة الآن تحتوي على قيمة 4،76.
>> وللتذكير، القيم النقطة العائمة غير دقيقة.
إذا كان الأمر كذلك وكان هذا عملية حسابية مالية، وذلك باستخدام دولار و
سنتا، ونحن قد ترغب في النظر في نوع بيانات دقيقة مثل
الباحث وتنفيذ الحساب في بنسات.
>> حالة أخرى حيث كنا نريد لإرجاع قيمة من
الوظيفة عندما نريد أن نعرف إذا كان وظيفة
ناجحة.
إذا لم يكن ناجحا، ونحن قد ترغب أيضا في معرفة ما هو نوع من
حدث خطأ.
دعونا نقول أننا نحاول فتح ملف على القرص لحساب
عدد الأحرف في ذلك.
إذا لا يمكن فتح الملف، نريد أن تكون قادرة على وقف و
نقول للمستخدم حول المشكلة.
>> سوف ندعو count_file_chars وظيفتنا فإنه سوف
تأخذ وسيطة واحدة.
سنقوم في تمرير اسم الملف باستخدام
* دعا شار اسم الملف.
وهذا قد تبدو وظيفة شيئا من هذا القبيل.
في هذا المثال، فإننا نتوقع العد عاد إلى
تكون 0 أو أكثر.
هذا يترك لنا الأعداد الصحيحة السالبة ل
استخدام كقيم الحارس.
قيمة الحارس هو مجرد قيمة خاصة غير
البيانات مشروعة ولكنها لا تنقل المعلومات.
هنا، إذا كنت إرجاع -1 إلى رمز الدعوة، وأنا
إرسال رسالة الواقع أن حدث خطأ ما أثناء
تحاول الوصول إلى الملف.
ويمكنني أن تحقق بعد ذلك أن قيمة الإرجاع لتحديد ما إذا بلدي
وكان استدعاء دالة ناجحة.
إذا كان العدد 0 أو أكبر، وأود أن أعرف
عدد الأحرف في الملف.
ولكن، إذا كان العدد أقل من 0، يمكن أنا ببساطة
طباعة أن هناك مشكلة قد حدثت.
مفاضلة واحدة للنظر هو أن من حجز جميع
القيم السلبية كقيم الحارس، على افتراض هذا هو
32-بت عدد صحيح، لقد اتخذت أساسا بعيدا حول
2000000000 القيم عائد ممكن.
>> أنواع قيمة الإرجاع هي واحدة من أهم عناصر
وظيفة المكالمات.
وقد ساعد هذا نأمل محة قصيرة رأيك
ثلاثة أنواع رئيسية هي: الفراغ، والقيم نتيجة لذلك، والقيم الحارس،
وعند كل من الثلاثة قد تكون
المناسبة في التعليمات البرمجية.
شكرا ليراقب.