advertise laitec sharif univercity
دانلود PDF مجموعه 300 نکته جالب برنامه نویسی در سی شارپ #C

دانلود PDF مجموعه 300 نکته جالب برنامه نویسی در سی شارپ #C

10000 تومان
دانلود سورس اندروید اپلیکیشن افزایش سرعت گوشی

دانلود سورس اندروید اپلیکیشن افزایش سرعت گوشی

18000 تومان
دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

14000 تومان
دانلود سورس بازی اندروید جدول خونه (900 جدول) همراه آموزش راه اندازی

دانلود سورس بازی اندروید جدول خونه (900 جدول) همراه آموزش راه اندازی

99000 تومان
سیستم اتوماسیون دهیاری ، پروژه مهندسی نرم افزار

سیستم اتوماسیون دهیاری ، پروژه مهندسی نرم افزار

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

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

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