سلسلة إرجاع من دالة C.

Slslt Arja Mn Dalt C



أ خيط عبارة عن سلسلة من الأحرف تتكون إما من حرف واحد أو أحرف متعددة وهي بنية بيانات مهمة في برمجة الكمبيوتر. عند العمل مع سلاسل في C ، يلزم إجراء عمليات معينة على خيط نوع البيانات مثل تهيئة ملف خيط أو تعيين المحتوى أو ربط ملفات سلاسل ، المقارنة سلاسل ، والعودة خيط .

تركز هذه المقالة على إحدى هذه العمليات في خيط بنية البيانات ، والتي تعيد ملف خيط من وظيفة C.







سلسلة إرجاع من دالة C.

مثل خيط عبارة عن مصفوفة من الأحرف ولإرجاع سلسلة من دالة C ، يجب تمرير مؤشر إلى بنية بيانات السلسلة كوسيطة من دالة الاستدعاء إلى الوظيفة المستدعى كمعامل. يمكن بعد ذلك استخدام المؤشر للإشارة إلى مجموعة من الأحرف. بمجرد أن يشير المؤشر إلى مجموعة من الأحرف ، فإن ملف خيط يمكن إرجاع القيمة من الوظيفة المستدعاة باستخدام تعليمة الإرجاع.



يمكنك إلقاء نظرة على المثال الوارد أدناه لفهم أفضل.



# تضمين

شار كونست * اسمي ( ) {
يعود 'جون' ؛
}

انت مين ( فارغ ) {
printf ( '٪س' ، اسمي ( ) ) ؛
}





في الكود أعلاه ، بدلاً من التصريح عن المتغير كما نفعل عادةً ، استخدمنا مؤشرًا معه بحيث لا يحدث خطأ عندما نعيد هذه السلسلة.

انتاج |




لا يمكن للدالة C إرجاع أ خيط التي تم تحديدها كمتغير محلي لأن المتغير سيتم إزالته (إصداره) فورًا عند انتهاء تشغيل الوظيفة ، مما يجعلها غير متاحة ويطلق تحذيرًا على النحو التالي:

# تضمين

const شار myName ( ) {
اسم الحرف = 'جون' ؛
يعود اسم؛
}

انت مين ( فارغ ) {
printf ( '٪س' ، اسمي ( ) ) ؛
}

في هذا الكود ، أ تحذير يتم تشغيل كما يتم إرجاع سلسلة بدون أي مؤشر.

انتاج |


لذلك يمكنك كتابة الكود بالطريقة التالية:

# تضمين

شار كونست * اسمي ( ) {
شار * الاسم = 'جون' ؛
يعود اسم؛
}
انت مين ( فارغ ) {
printf ( '٪س' ، اسمي ( ) ) ؛
}

انتاج |


يتم تخصيص المتغيرات على المكدس بشكل افتراضي ، وهذا هو السبب الفعلي للبيان أعلاه. ومع ذلك ، عندما يتم التصريح عن المؤشر ، يتم تخصيص القيمة التي يشير إليها في الكومة ، والتي لا يتم مسحها بعد انتهاء الوظيفة. بمجرد تخصيص الذاكرة ، يتم إصدار نسخة من ملف خيط يجب إنشاؤه من موقع الذاكرة الأصلي المشار إليه بالمؤشر ويجب إرجاع النسخة من الوظيفة التي تم استدعاؤها. ستتحكم وظيفة الاستدعاء بعد ذلك في بيانات السلسلة الأصلية ، بينما تكون الوظيفة المستدعاة مسؤولة عن تحرير المساحة المخصصة.

خاتمة

يمكن أن تأخذ الدالة C مؤشرًا إليها خيط كحجة والعودة خيط القيمة كنتيجة للعمليات المنفذة ضمن الوظيفة المطلوبة. الأسلوب لتحقيق ذلك هو استخدام مؤشر char *. ستكون وظيفة الاستدعاء مسؤولة عن الذاكرة المخصصة لتخزين ملف خيط ، في حين أن الوظيفة المطلوبة مسؤولة عن تحرير المساحة المخصصة.