مشاهده نسخه کامل
: آیا Struct توانایی ذخیره شدن در Heap را دارد؟
درود و سلام،
امروز مطلبی دیدم که میگه Struct در حافظه Heap هم می تواند ذخیره شود!
:n13:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مظنورش از inline چیه؟؟؟؟ من توابع inline می شناسم که کامپایلر برای بهینه سازی موقع تبدیل کردن کد ها به IL ، برخی ها که کوچک هستند و شرایط مناسب دارند رو دقیقا خود تابع رو جایگزین میکنه به جای فراخوانی
اما استراکچر چطور هست؟ خوب ما 2 نوع ذخیره سازی داریم. یا میریزیم تو Heap مثل رفرنس تایپ ها یا value type ها مثل int
اما inline رو تازه دیدم!!!! :n04:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
خیلی واضح است، struct در حافظه پشته ذخیره شده و class ها در هیپ ... قبول که دارید؟!
int یک struct است و در پشته ذخیره میشود ولی
{;class Class1 {int x یک کلاس است و در هیپ ذخیره میشود، متن هم همین را میگوید! خیلی واضح است!
struct هایی که جزئی از یک کلاس میشوند، دیگر کلاس هستند.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خیلی سخت نگاه و ترجمه نکنید، نکته ابهامی ندارد.
==============
برای تکمیل بحث لازم به ذکر است که یک عمل Boxing و Unboxing هم در دات نت داریم که وقتی رخ میدهد که struct ای را در نوع System.Object ذخیره کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
عمل دات نت در این موقع شبیه ذخیره در یک کلاس تک فیلدی است.
و... ...
درنهایت به آنجا میرسیم که در این حالت هم struct به heap منتقل میشود.
این لینک را هم ببینید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
==============
مظنورش از inline چیه؟؟؟؟ من توابع inline می شناسم ...
باید کلمات را در جمله معنی کرد، باید با ذهنیت بازتری ترجمه کرد...
من حدس میزنم منظور متن از ذخیره inline در اینجا، به احتمال زیاد ذخیره در ثبات های اصلی و داخلی CPU است مانند EAX, EBX, ECX, EDX و...
در موارد خاص این مورد هم جهت بهینه سازی استفاده میشود تا نیاز به read مدام RAM برای متغییری پراستفاده نباشد.
موفق باشید.
این مطلب ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) می تواند برای شما مفید باشد.
موفق باشید.
سلام،
البته Structure ها از System.ValueType ارث بری میکنند، و همین System.ValueType به طور غیرمستقیم از System.Object ارث بری میکند.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.