PDA

View Full Version : سوال: Preprocessor چیست؟



ashkan1234
دوشنبه 16 تیر 1393, 19:28 عصر
با سلام.
اساتید اگر در این مورد اطلاعاتی دارن ممنون میشم راهنمایی بفرمایید!
منبع فارسی براش پیدا نکردم!
تو سایتهای خارجی هم گشتم ولی مطمئن نیستم ازچیزی که متوجه شدم!
این لیست Preprocessor های سی شارپه ، که فقط چند تاشو میدونم چیکار میکنه!
#iF#‎else
#elif
#endif
#define
#undef
#warning
#error
#line
#region
#endregion
#pragma
#pragma warning

#pragma checksum
برام خیلی مهمه اینو بدونم چیکار میکنه:#pragma
البته چیزی که متوجه شدم اینه که باعث میشه پارامترهایی که ازشون استفاده نمیکنید،موجب خطا نشن!
ولی نیاز به توضیح کامل دارم!
اگه یکی اینارو تک تک توضیح بده خیلی خوبه
باتشکر

plus
دوشنبه 16 تیر 1393, 21:11 عصر
pragma دستور العمل های خاصی رو به کامپایر میده. کامپایلر #C دو نوع دستور العمل رو پشتیبانی میکنه:
Warning

#pragma warning disable warning-list
#pragma warning restore warning-list

به این معنی که به کامپایر میگه که آیا یک warning رو ایجاد کنه یا نه.
همونطور که احتمالا میدونید، کامپایلر #C در صورتی که اشکالات غیر جدی رو تشخصی بده، بجای error دادن، به صورت warning اعلام میکنه (در VS در بخش Error List قسمت Warning).
اشکال غیر جدی مانند تعریف یک متغیر و عدم استفاده از اون میتونه باشه که warning شماره 414 رو ایجاد میکنه.
حالا شما اگه در جاهایی به دلایلی میخوای یک سری از warning ها نمایش داده نشن. مثلا به دلیل خاصی متغیری رو تعریف کردی ولی ازش استفاده کردی.نمیخوای این اخطار List مربوط به Warning ها نمایش داده بشه. از

#pragma warning disable 414

استفاده میکنی تا از ایجاد Warning جلوگیری کنی.مطابق همین موضوع با restore میشه وضعیت رو به حالت قبل برگردوند.

Checksum
مربوط به تولید Checksum برای فایل های .cs هست (برای ASP.NET) توضیحات بیشتر در مورد این Preprocessor و بقیه رو میتونید از MSDN مطالعه کنید.
http://msdn.microsoft.com/en-us/library/ms173226.aspx

rasol_afkham
دوشنبه 16 تیر 1393, 22:13 عصر
#region
#endregion
این دو تا دستوری رو اجرا نمی کنن. فقط یک ناحیه ایجاد می کنند برای اینکه بتوان کدها را درون اونها گذاشت. برای مثال وقتی که یک رویداد برای دکمه و یا هر کنترل دیگری را ایجاد می کنید سمت چپ اون رویداد یک علامت منفی ظاهر می شه که اگه بر روی اون کلیک کنید کدهایی که داخل اون رویداد نوشته شده مخفی می شه و تنها نام رویداد مورد نظر دیده می شه و جلوی اون یک کادر مربعی کوچک ظاهر می شه که نشان میده بدنه این رویداد که همان کدهای داخل رویداد هستند داخل اون قرار دارند. اینکار را اصطلاحا تاخوردگی می گویند. شما با استفاده از این دو کله رزرو شده
#region
#endregion
می توانید در هر قسمت از کدهاتون اینچنین تاخوردگی رو ایجاد نمایید. هر کلمه یا جمله ای را جلوی کلمه region# بنویسید در کادر مربعی جلوی این تا خوردگی نشان داده می شه.

قبل از تا خوردگی
120869
بعد از تا خوردگی
120870

ashkan1234
سه شنبه 17 تیر 1393, 14:06 عصر
دوستان ممنونم از پاسختون...
منظور نظرم بیشتر روی #pragma خالی بودش!
لینک MSDN هم قبلا دیدم منتها توضیح صریح و فارسی ازشون میخواستم که این تاپیک رو زدم...
خوب حالا که فهمیدم #pragma warning چیکار میکنه ، بفرمایید که خود #warning چیکار میکنه!
و سایر دستورات مثل #if.
لطفا دوستان دیگری که در این مورد اصلاعات دارند ، راهنمایی بفرمایند.