delphi4arab منتديات دلفي للعرب
مالفرق بين const parameter و value parameter - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : مالفرق بين const parameter و value parameter (/showthread.php?tid=5794)



مالفرق بين const parameter و value parameter - Amer12 - 15-12-2013

في مراجع دلفي ذكر ان const parameter يتصرف نفس value parameter ، بماذا يتشابها وبماذا يختلفان ولماذا ينصح استخدام const مع السلاسل الحرفية ؟

في حالة اذا كانت القيمة التي تم تمريرها إلى الاجراء قيمة عددية هل يتم نسخها إلى stack كما يحصل عند التمرير بالقيمة pass by value ؟


مالفرق بين const parameter و value parameter - SMP3 - 15-12-2013

حتى تفهم الفكرة جيدا يجب ان تعرف طريقة التمرير ب ال var ..
عندما تمرر متغير ك var فانت في الحقيقة تمرره كمؤشر .. لذلك عند تغييره داخل اجراء خارجي .. ستتغير قيمته .
اما عند التمرير ك const فالكومبايلر سيقوم بعمل نسخة من المتغير في ال stack فقط اذا كان طول نوع المتغير اكبر من 4 بت او 8 بت للنظامين 32 بت و 64 بت على التوالي ..
هناك عامل اخر وهو calling convention : في حالة stdcall سيتم تجاهل طول النوع variable type ويتم دفع المتغير مباشرة في ال stack .
عند التعامل مع السلاسل النصية ينصح العديد من المبرمجين بتمريرها ك const وارجاع القيمة ك return تفاديا لمشاكل الوصول للذاكرة عند استخدام التمرير ك var ،فمؤشر المتغير يمكن ان يؤشر على مكان في الذاكرة قد تم تحريره مسبقا بتدخل من المبرمج او من الكومبايلر .
ان لم تكن على دراية بطريقة تنظيم الذاكرة .. فسيكون التمرير ك const خيار جيدا .
اما ان كان المبرمج على دراية بذلك .. فيستطيع التمرير بالاسلوب الذي يناسبه .
+ تمرير سلسلة نصية ك var من ال heap افضل و أأمن بكثير .


مالفرق بين const parameter و value parameter - S.FATEH - 15-12-2013

السلام عليكم يمكن الرد يساعدك ان شاء الله
التمرير بالـ var ما هو الا تمرير مؤشر دلفي حريص على اخفاء تعاملك بالمؤشرات


مالفرق بين const parameter و value parameter - Amer12 - 16-12-2013

أخ smp3 هل من الممكن ارفاق مثال بسيط يوضح ما شرحته


مالفرق بين const parameter و value parameter - SMP3 - 17-12-2013

amer12 كتب :أخ smp3 هل من الممكن ارفاق مثال بسيط يوضح ما شرحته

أعتذر أخي .. لا يمكنني ان ارفق مثال حاليا ..
انا اتصفح المنتدى من الجوال ..
ممكن فيما بعد ..