في بعض الأحيان ، عند العمل مع لغة البرمجة سي ، يصبح من الضروري الخروج من وظيفة بنوع إرجاع باطل. يمكن أن يحدث هذا لأسباب مختلفة ، على سبيل المثال ، الحاجة إلى إيقاف تنفيذ وظيفة حسب الحالة أو مقاطعة تشغيلها. في مثل هذه الحالات ، يطرح السؤال حول كيفية تنفيذ الخروج من الوظيفة بشكل صحيح بدون قيمة إرجاع.
في هذه المقالة ، سننظر في خمس طرق لحل هذه المشكلة. الطريقة الأولى هي استخدام عامل الإرجاع بدون وسيطات. يتيح لك هذا الأسلوب ببساطة الخروج من الوظيفة دون إرجاع أي قيمة. ومع ذلك ، ضع في اعتبارك أنه عند استخدام الإرجاع بدون وسيطات ، سيتم تدمير جميع المتغيرات المحلية المحددة داخل الوظيفة.
الطريقة الثانية هي استخدام بيان الإرجاع بقيمة فارغة كوسيطة. يتيح لك ذلك تحسين إخراج الوظيفة قليلا ، مما يشير إلى أنها تكمل عملها دون إرجاع أي قيمة. يمكننا القول أن هذا النهج يجعل الكود أكثر قابلية للفهم ووضوحا للمطورين الآخرين. ومع ذلك ، لا تقوم هذه الطريقة أيضا بحفظ المتغيرات المحلية المحددة داخل الوظيفة.
تقترح الطريقة الثالثة استخدام اعتراض الاستثناء للخروج من الوظيفة. لا يوجد دعم استثناء أصلي في اللغة ج ، ولكن يمكنك استخدام ميزات كيفية عمل الإشارات لهذا الغرض. يمكن أن يكون هذا النهج مفيدا إذا كنت بحاجة إلى مقاطعة تنفيذ وظيفة على الفور والتقاط استثناء في مكان آخر من الكود.
- إرجاع قيمة
- استخدام الاستثناءات
- باستخدام الأعلام
- باستخدام التحولات
- سؤال وجواب
- هل من الممكن الخروج من وظيفة الفراغ قبل تنفيذ جميع التعليمات في الداخل?
- كيف يمكنني الخروج من وظيفة الفراغ في وقت مبكر?
- ما هي الطرق الأخرى للخروج من وظيفة الفراغ?
إرجاع قيمة
في لغة البرمجة ج ، وظيفة مع نوع الفراغ لا ترجع أي قيمة. ومع ذلك ، في بعض الحالات يصبح من الضروري الحصول على القيمة من الوظيفة لمزيد من المعالجة.
لحل هذه المشكلة ، يمكنك استخدام آليات لغة سي التي تسمح لك بإرجاع قيمة من دالة. فيما يلي 5 طرق يمكنك استخدامها لإرجاع قيمة من دالة باطلة في ج:
كثافة العمليات الرئيسية () {
- نتيجة الدقة = حساب (5 ، 3);
برينتف ("المبلغ: ٪ د
"،مجموع الدقة);
العودة 0;
}
في هذا المثال ، تحسب دالة الحساب مجموع رقمين وتعيد بنية النتيجة التي تحتوي على هذه القيمة. ثم يتم إخراج قيمة المجموع في الوظيفة الرئيسية.
باستخدام مؤشر إضافي. يمكنك تمرير مؤشر إلى قيمة إلى دالة ، وتغيير القيمة داخل الدالة حسب المؤشر. على سبيل المثال:
# تشمل
- زيادة الفراغ (إنت *بتر) {
- * بتر + = 1;
}
كثافة العمليات الرئيسية () {
عدد الأسطوانات = 5;
الزيادة (#);
برينتف ("زيادة القيمة: ٪ د
"،الأسطوانات);
انتقل إلى علامة 'النهاية'
// كتلة التعليمات البرمجية التي سيتم تخطيها