مشاهده نسخه کامل
: منظور از متغیره ایی که با _ شروع و اسامی با حروف بزرگ
سلام
یک سری برنامه نویس های یکسری متغیر میزارن که با _ شروع میشه.چرا؟ دلیل خاصی داره؟ و کلماتی که با 2 نوع کامپایلر بهمون میده.کلمات کلیدی منظورمه که با حرف کوچک و بزرگ میده.کاربردش کی هست و چرا این طوریه؟
anvar.net
21-07-2013, 19:40
منظور خاصی وجود نداره معمولا بیشتر در داخل کلاس ها که بخواهند خصوصیاتی برای کلاس تعریف کنند نیاز به متغیرهای محلی هست در اینجا معمولا از علامت _ در ابتدا متغیرها استفاده میشه (کاربر هم بصورت مستقیم با این متغیر کار نمی کنه و فقط Property مورد نظر بصورت داخلی از آن استفاده می کند) . فقط همین و منظور دیگه ای در کار نیست.
این نوع کلمات کلیدی اصطلاحا آلیاس هم هستند و هیچ فرقی بین اونها در کوچک بودن یا بزرگ بودن حرف اول وجود نداره. البته از حرف بزرگ بیشتر زمانی استفاده میشه که بخواهند با تایپ مورد نظر کار کنند مثلا string و String رو در نظر بگیر برای تعریف متغیرها از اولی و زمانی که با متدهای کلاس استرینگ بخواهند کار کنند از دومی استفاده می کنند مثلا String.Compare یا String.IsNullOrEmpty و سایر متدها
گذاشتن _ در ابتدای متغیر ها چندین معنا دارد، این مطلب کاملا بسته به کامپایلر و حتی برنامه نویس دارد.
بیایید در دو سطح بررسی کنیم:
1- بحث روان خوانی
2- بحث اسمبلر
در بخش روان خوانی همان طور که جناب anvar فرمودند فقط جنبه ی نمایشی دارد و قرار دادن یک _ تنها برای ایجاد درک در متغیر های محلی است. همچنین استفاده از مقادیر با حروف بزرگ (تماما بزرگ) برای مقادیر const استفاده می شود. این روش یک استاندارد را مطرح می کند که همان استاندارد پاسکال هست. به این جمله دقت کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
منبع WikiPedia .
برای شرح کاملا استاندارد نام گذاری ببینید: (بسیار مفید است)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای کسب اطلاعات بیشتر اینجاها را نیز ببینید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اما مطلب دیگر در مورد _ این گونه می باشد.(عموما در .net وجود _ به این تعریفی که قصد دارم شرح بدهم نیست اما در C کاملا با این معناست.)
اگر یک متغیر در C درج گردد هنگام کامپایل و تبدیل به اسمبلی با _ دیده خواهد شد یعنی:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اگر متغیر شما یک _ نیز داشته باشد پس __ در اسمبلی دیده خواهد شد. می تواند روشی برای کمک به تحلیل اسمبلی باشد.
مهندسی معکوس: اگر بخواهیم یکسری تابع یا ماکروی اسمبلی داشته باشیم کافیست تا در هنگام نوشتن اسمبلی یک _ در ابتدای نام label اسمبلی گذاشته تا بتوانیم نام کاملا آن را بدون _ در C داشته باشیم. حال کافیست تا با یک extern به linker اعلام کنیم که متد ما در اسمبلی وجود دارد.
مثال:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و در C بنویسیم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته این یک استاندارد است اما بازهم بسته به کامپایلر ممکن است این رفتار را نبینید.
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.