advertise laitec sharif univercity
دانلود برنامه هشت وزیر با جستجوی عمقی در سی شارپ

دانلود برنامه هشت وزیر با جستجوی عمقی در سی شارپ

10000 تومان
دانلود پروژه وب سایت هتل با HTML و ASP.NET

دانلود پروژه وب سایت هتل با HTML و ASP.NET

10000 تومان
دانلود سورس پروژه سی شارپ شبیه سازی صف بانک تحت شبکه

دانلود سورس پروژه سی شارپ شبیه سازی صف بانک تحت شبکه

10000 تومان
دانلود پروژه فروشنده دوره گرد با الگوریتم گرانشی در #C

دانلود پروژه فروشنده دوره گرد با الگوریتم گرانشی در #C

10000 تومان
دانلود برنامه آزمون تستی در مالتی مدیا بیلدر MMb

دانلود برنامه آزمون تستی در مالتی مدیا بیلدر MMb

10000 تومان

دستورات پیش پردازنده در زبان سی پلاس پلاس ++C

پیش پردازنده، نوعی مترجم است که دستورات توسعه یافته ای از یک زبان برنامه نویسی را گرفته، به دستورات قابل فهم برای کامپایلر همان زبان تبدیل میکند.
دستورات پیش پردازنده در زبان سی پلاس پلاس ++C

دستورات پیش پردازنده در زبان سی پلاس پلاس C++

پیش پردازنده، نوعی مترجم است که دستورات توسعه یافته ای از یک زبان برنامه نویسی را گرفته، به دستورات قابل فهم برای کامپایلر همان زبان تبدیل میکند. به عبارت دیگر، ورودی پیش پردازنده برنامه ای با دستورات توسعه یافته است و خروجی آن،برنامه دیگری است که توسط پردازنده (CPU) قابل ترجمه و اجراست. دستورات توسعه یافته ای در زبان C وجود دارند که توسط پردازنده قابل ترجمه و اجرا نیست، بلکه فقط توسط پیش پردازنده قابل فهم هستندو به دستورات پیش پردازنده معروفند. دستورات پیش پردازنده در زبان C از اهمیت ویژه ای برخوردارند.

 

تعریف ماکرو

ماکرو، نامی برای یک رشته است که این رشته میتواند ترکیبی از حروف، ارقام، مقادیر ثابت، توابع و  غیره باشد. دستور پیش پردازنده #define برای تعریف ماکرو استفاده میشود. این دستور قبل از تابع main() به دو صورت به کار میرود که یک روش آن بصورت زیر است:

<رشته>    <نام ماکرو>     #define

نام ماکرو، همانند نام یک متغیر در C است که حداقل باید با رشته تعریف کننده ماکرو، یک فاصله داشته باشد و بهتر است جهت مشخص بودن در برنامه با حروف بزرگ انتخاب شود. در مورد دستورات پیش پردازنده در زبان C باید این نکته را در نظر داشت که آنها علیرغم سایر دستورات زبان C به ; ختم نمیشوند.

 

کاربرد دیگر دستور #define در تعریف ماکروهایی است که دارای پارامتر باشند. در این مورد از این دستور بصورت زیر استفاده میشود:

تعریف ماکرو  (اسامی پارامترها)   نام ماکرو  #define

تعریف ماکرو، مشخص میکند که چه عملی باید توسط ماکرو انجام گیرد. اسامی پارامترها متغیرهایی هستند که در حین اجرای ماکرو به آن منتقل میشوند. اگر تعداد آنها بیش از یکی باشد با کاما از هم جدا می شوند.

برخلاف توابع، در ماکروها نیازی به تعریف نوع پارامترها نیست. بعنوان مثال دستور #define  READINT(I) ماکرویی به نام READINT تعریف میکند که دارای پارامتر "I" است. اگر بخواهیم متغیری مثل distance   را از ورودی بخوانیم کافیست ماکروی فوق را بصورت  READINT (distance); فراخوانی کنیم.

اگر تعریف ماکرو شامل عبارتی طولانی باشد (طوری که در یک خط قابل بیان نباشد) میتوان آن را در دو یا چند خط ادامه داد. بدین منظور باید در انتهای هر خط ناتمام از کاراکتر back slash() استفاده نمود.

 

دستورات پیش پردازنده شرطی

در حالت معمولی، دستور if برای تصمیم گیری در نقاط مختلف به کار میرود. شرط هایی که در دستور if ذکر میشوند و در حین اجرای برنامه ارزشیابی میشوند. یعنی اگر شرط ذکر شده در دستور if چه درست باشد چه نادرست، این دستور و کلیه دستورات دیگر که در بلاک if قرار دارند ترجمه میشوند  ولی در دستورات پیش پردازنده ی شرطی، شرطی که در آن ذکر میشود در حین ترجمه ارزشیابی میشود.

دستورات پیش پردازنده شرطی عبارتنداز:

► #if

► #else

► #elif

► #endif

► #ifdef

► #ifndef

 

دستور #if بصورت زیر بکار میرود:

#if          عبارت شرطی

                    مجموعه دستورات

#endif

 

عبارت شرطی که در دستور #if ذکر میشود، عبارتی است که مقدار آن در زمان ترجمه معلوم است. این عبارت در حین ترجمه ارزیابی میشود. چنانچه دارای ازش درستی باسد مجموعه دستورات موجود در بین #if و #endif ترجمه خواهد شد وگرنه این مجموعه دستورات ترجمه نمیگردد.

 

#elif مشابه دستور else  if رفتار میکند و بصورت زیر استفاده میشود:

#if         1 عبارت شرطی

               1  مجموعه دستورات

#elif        عبارت شرطی2

                مجموعه دستورات2

.

.

.

#elif   n عبارت شرطی

            n   مجموعه دستورات   

#endif

 

هر #elif بهمراه یک عبارت شرطی است که اگر نتیجه ارزیابی آن ارزش درستی داشته باشد مجموعه دستورات مربوط به آن ترجمه شده کنترل به دستور بعد از #endif برمیگردند وگرنه شرط های موجود در #elif های بعدی مورد بررسی قرار میگیرند. اگر هیچکدام از عبارات شرطی ذکر شده در این ساختار ارزش درستی نداشته باشند، هیچ یک از مجموعه دستورات 1 تا n ترجمه نخواهد شد.

 

حذف ماکروی تعریف شده

اگر در برنامه ماکرویی توسط دستور #define تعریف گردد، دستور #undef میتواند از یک نقطه دلخواه برنامه (ازجایی که این دستور قرار میگیرد) به بعد، تعریف ماکرو را بی اثر میسازد. این دستور بصورت <نام ماکرو>    #undef  بکار میرود.

 



3
نظرات
  • user avatar علی اصغر:
    ۱۲:۴۲:۰۷ __ ۱۳۹۴/۱۲/۲۰

    خیییییییلی مطالبه تون باحال بود ممنون

  • user avatar شایان:
    ۱۴:۳۳:۳۶ __ ۱۳۹۷/۰۳/۳۱

    ممنون از راهنمائی تون عالی بود

  • user avatar احسان:
    ۱۸:۱۸:۱۹ __ ۱۳۹۹/۰۵/۲۳

    سلام اول تشکر بخاطر اینکه به زبان ساده دارید مطالب مقدماتی رو توضیح می دید.یه سیوال دارم اگر براتون مقدور هست پاسخ بدید شما در ابتدا نوشته اید " پیش پردازنده، نوعی مترجم است که دستورات توسعه یافته ای از یک زبان برنامه نویسی را گرفته، به دستورات قابل فهم برای کامپایلر همان زبان تبدیل میکند. " سیوال من این است که وقتی برنامه داره نوشته میشه اول برنامه برای کامپایلر توضیح داده میشه چطور باید کدهایی که نوشته می شوند رو بفهمه و ترجمه کنه به این صورت که مثلا به کامپایلر میگن دستورالعمل درک کد نوشته شده در فایل iostream وجود داره کامپایلر به این فایل مراجعه میکنه اون رو اسکن میکنه ،دستورالعمل مربوطه رو پیدا میکنه پس کامپایلر بوسیله این دستور هم کد رو میفهمه هم برای ماشین ترجمه اش میکنه ، با وجود این چرا نیازی بوده که پیش پردازنده رو ابداع کردند؟ وقتی امکان این هست که برای کامپایلر (مترجم ) بوسیله دستورالعمل هایی که من در بالا یه نمونش رو گفتم (iostream) نحوه تفسیر کد نوشته شده بوسیله کاربر رو توضیح داد چه ضرورتی ایجاب کرده که پیش پردازنده را بوجود بیاورند؟با تشکر - سلامت و موفق باشید.

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


پارس وی دی اس
آشنایی با انواع دستورات پیش پردازنده C plus plusآموزش تعریف ماکرو در سی پلاس پلاسدستوات پیش پردازنده چه دستوراتی هستند؟پیش پردازنده چیست؟دستورهای پیش پردازنده شرطی در ++C کدامند؟تعریف و معرفی پیش پردازنده در زبان ++Cدستورات پیش پردازنده ماکروی شرطیحذف ماکروی تعریف شده در ++C چگونه است؟تبلیغات ارزان سایت آموزش برنامه نویسیتبلیغات مخصوص طراحان وب سایتتبلیغات در سایت برنامه نویسیتبلیغات اینترنتی برای برنامه نویساندر آغوش مینیمالیسممنوی همبرگر با سه خط افقی که روی یکدیگر قرار گرفته اند نشانه چیست؟ سوئیچ به یک ستون واحدتبدیل متن ساده به وبلاگ و سایت های پویا با React.jsکتابخانه sass برای استفاده آسان تر از آنکتابخانه سطح بالا برای اتوماتیک سازی اعمال مرورگر لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php