close
تبلیغات در اینترنت
کامپايل شرطی
مرورگرهای پیشنهادی :
موضوعات
  • پایان نامه و مقاله فنی مهندسی
  • مهندسی برق ، الکترونیک ، مخابرات
  • مهندسی فناوری اطلاعات
  • مهندسی کامپیوتر
  • مهندسی مکانیک
  • مهندسی عمران
  • مهندسی معماری
  • مهندسی ساخت و تولید
  • مهندسی منابع طبیعی
  • مهندسی کشاورزی
  • مهندسی شیلات
  • مهندسی صنایع
  • مهندسی مواد
  • مهندسی نقشه برداری
  • مهندسی تاسیسات
  • مهندسی شیمی
  • مهندسی متالوژی
  • مهندسی نساجی
  • مهندسی معدن
  • مهندسی نفت
  • محیط زیست
  • جوشکاری
  • پایان نامه و مقاله علوم انسانی
  • حقوق
  • اقتصاد
  • مدیریت
  • جغرافیا
  • جهانگردی
  • حسابداری
  • تربیت بدنی
  • ادبیات فارسی
  • علوم سیاسی
  • علوم اجتماعی
  • مدیریت صنعتی
  • مدیریت روابط عمومی
  • احکام و معارف اسلامی
  • روانشناسی و علوم تربیتی
  • گرافیک
  • هنر
  • بیمه
  • تاریخ
  • موسیقی
  • صنایع دستی
  • پایان نامه و مقاله پزشکی
  • علوم آزمایشگاهی
  • بهداشت عمومی
  • طب هسته ای
  • چشم پزشکی
  • جنین شناسی
  • روان پزشکی
  • دندانپزشکی
  • پیراپزشکی
  • دامپزشکی
  • طب سنتی
  • داروسازی
  • پرستاری
  • پزشکی
  • مامایی
  • آناتومی
  • ژنتیک
  • پایان نامه و مقاله علوم پایه
  • زیست شناسی
  • زمین شناسی
  • دندانپزشکی
  • دامپزشکی
  • پزشکی
  • فیزیک
  • پاورپوینت و اسلاید فنی مهندسی
  • پاورپوینت معماری
  • پاورپوینت کامپیوتر و IT
  • نمونه سوالات استخدامی
  • نمونه سوالات استخدامی بانک
  • نمونه سوالات استخدامی آموزش و پرورش
  • نمونه سوالات استخدامی شهرداری
  • نمونه سوالات استخدامی تامین اجتماعی
  • نمونه سوالات استخدامی دستگاه اجرایی
  • نمونه سوالات استخدامی فنی و حرفه ای
  • نمونه سوالات استخدامی وزارت خانه ها
  • نمونه سوالات استخدامی نظامی
  • سایر نمونه سوالات استخدامی
  • جزوات دانشگاهی
  • جزوات دروس مشترک دانشگاهی
  • جزوات مهندسی برق
  • جزوات مهندسی مکانیک
  • جزوات مهندسی عمران
  • جزوات رشته حسابداری
  • جزوات مهندسی فیزیک
  • جزوات مهندسی معماری
  • جزوات مهندسی ریاضی
  • جزوات مهندسی صنایع
  • جزوات مهندسی شیمی
  • جزوات مهندسی کامپیوتر و IT
  • جزوات رشته زمین شناسی
  • جزوات رشته روانشناسی
  • جزوات مهندسی مخابرات
  • جزوات رشته مدیریت
  • جزوات تربیت بدنی
  • جزوات حقوق
  • گزارش کارآموزی فنی مهندسی
  • مهندسی کامپیوتر (سخت افزار - نرم افزار)
  • مهندسی مکانیک
  • مهندسی برق
  • مهندسی شیمی
  • مهندسی فناوری اطلاعات
  • صنایع غذایی
  • حسابداری
  • مدیریت
  • مطالب پربازدید
    مطالب تصادفی
    مطالب پیشین
  • بررسی رابطه تيپ های شخصيتی دبيران دبيرستانهای دخترانه با میزان موفقیت (پنجشنبه 13 اردیبهشت 1397)
  • بررسی پيش تجربی سياهه مشاوره ای لوئيس سوال هاي شماره 3 تا 45 (از مقياس اطمينان اجتماعی) (پنجشنبه 13 اردیبهشت 1397)
  • بررسی مقدماتی شخصيتی كرنل براي سوال 36 و 37 بر روي دانشجويان دانشگاه آزاد اسلامي (پنجشنبه 13 اردیبهشت 1397)
  • مقايسه مشكلات زبان عادی ويژه (چهارشنبه 12 اردیبهشت 1397)
  • مقایسه ویژگی های شخصیتی شخصیت ضد اجتماعی و انحرافات اجتماعی در بین دانشجویان دختر و پسر (جمعه 07 اردیبهشت 1397)
  • بررسی رابطة تك فرزندی با اختلالات رفتاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی توصيفی موسيقی و موسيقی درمانی بر روی انسان ها (چهارشنبه 05 اردیبهشت 1397)
  • بررسی تأثير ناكامی در ميزان پرخاشگری بين دانش آموزان دختر و پسر مقطع ابتدايی (چهارشنبه 05 اردیبهشت 1397)
  • بررسی ميزان تأثير اردوهای تربيتی ـ آموزشی بر رشد شخصيت دانش آموزان (چهارشنبه 05 اردیبهشت 1397)
  • نياز سنجی كاركنان اطلاعات (چهارشنبه 05 اردیبهشت 1397)
  • مقايسه هوش هيجانی و جرأت ورزی در دانش‌آموزان دختر و پسر نابينا و عادی (چهارشنبه 05 اردیبهشت 1397)
  • مقایسه میزان هیجان خواهی دانشجویان متأهل و مجرد (چهارشنبه 05 اردیبهشت 1397)
  • مددکاری (چهارشنبه 05 اردیبهشت 1397)
  • بررسی علل گرايش جوانان و نوجوانان به قرص های روان گردان (چهارشنبه 05 اردیبهشت 1397)
  • شناسايی نيازهای آموزشی و ترويجی توتون کاران (چهارشنبه 05 اردیبهشت 1397)
  • راهنماها

    راهنماها (directives) دستوراتی هستند که توسط برنامه نويس به پيش پردازنده داده می شوند تا عمل خاصی را انجام دهد. برای مثال ثابتی را در متن جايگزين کند، محتوای فايل ديگری را در فايل مبدا درج کند يا بخشی از کد را ترجمه نکند.

    راهنماها باعث می شوند متن برنامه به سادگی تغيير کند و درمحيط های مختلف قابل کامپايل باشد.

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

    پيش پردازنده راهنماهای زير را تشخيص می دهد:

    #define #error#include#if
    #else#elif #endif #ifdef
    #ifndef#import#line#pragma
    #undef#using   

    نکته. راهنماها هميشه با علامت # (sharp sign) شروع می شوند.
    نکته. بين علامت # و اولين کاراکتر راهنما می تواند فاصله باشد.
    نکته. بعضی راهنماها شامل آرگومان ها و مقادير هستند. هر متن ديگری بجز آرگومان و مقدار که به دنبال راهنما می آيد ابتدايش بايد علامت توضيح باشد (//) يا در بين علائم (/* */) قرار بگيرد.
    نکته. خط شامل راهنما می تواند با علامت انتهای خط () ختم شود.
    نکته. راهنماها می توانند در هرجائی از فايل منبع قرار بگيرند اما تنها روی بقيه کد تاثير می گذارند.

    ثابت ها

    همانطور که در بخش ثابت ها توضيح داده شده است از راهنمای #define می توان برای تعريف يک ثابت سمبليک استفاده کرد. شکل کلی تعريف ثابت به صورت زير است:

    #define [identifier name] [value]

    پيش پردازنده قبل از کامپايل در متن برنامه شناسه Identifier name را با مقدار value جايگزين خواهد کرد.

    اگر ثابت را به صورت يک عبارت محاسباتی تعريف کنيد بهتر است مقدار را درون پرانتز قرار دهيد. به اين ترتيب الويت عمليات حفظ خواهد شد.


    مثال. تعريف ثابت زير در نظر بگيريد:

    #define PI_PLUS_ONE (3.14 + 1)

    که به صورت زير استفاده می شود:

    x = PI_PLUS_ONE * 5;

    اگر پرانتزها را قرار ندهيم عبارت به صورت زير محاسبه خواهد شد، يعنی ابتدا عمل 1*5 انجام می شود سپس عمل جمع.

    x = 3.14 + 1 * 5;


    ضميمه کردن فايل

    راهنمای include# به پيش پردازنده می گويد که متن يک فايل را بگيرد و در برنامه جاری درج کند. معمولا راهنمای include# در ابتدای برنامه قرار می گيرد. به همين دليل نام header file به فايل هائی که ضميمه می شوند گفته می شود.

    نام فايل هدر در مقابل راهنمای include# قرار می گيرد. درج نام فايل بين علائم < > يا " " نحوه جستجوی فايل را مشخص می کند. اگر نام فايل بين علائم < > محصور باشد کامپايلر فايل را در مسيرهای تعيين شده در بخش تنظيمات کامپايلر جستجو می کند ولی اگر نام فايل مابين علائم " " قرار گيرد کامپايلر آنرا ابتدا در مسير جاری برنامه جستجو می کند.

    فايل های هدر استاندارد نظير iostream.h بين علائم < > محصور می شوند.

    کامپايل شرطی

    مجموعه ای از راهنماها وجود دارند که تعيين می کنند آيا خطوط برنامه قبل از تحويل به کاميايلر حذف شوند يا خير. اين راهنماها شامل #if، #elif، #else، #ifdef و ifndef# هستند.

    يک بلوک شرطی که با يکی از راهنماهای شرطی شروع می شود حتما بايد به endif# ختم شود. بهتر است مقابل عبارت endif# توضيحی باشد که مشخص شود کدام بلوک شرطی بسته شده است.

    يکی از کاربردهای راهنماهای شرطی وقتی است که فايل هدری در چند فايل هدر ديگر که بايد در برنامه اصلی ضميمه شوند مورد نياز است. مشکلی که پيش می آيد اين است که متغيرها، ثابت ها، کلاس ها و توابع فايل هدر چندبار در برنامه ظاهر خواهند شد که سرباری برای کامپايلر می شود. با پيش پردازنده ها به راحتی می توان تضمين کرد که هر فايل هدر تنها يکبار در برنامه اصلی اضافه می شود. راهنمای (if not defined) #ifndef بلوکی از متن را تنها اگر عبارت خاصی قبلا تعريف نشده باشد اجرا می کند.

    کدی که در idndef# ضميمه می شود تنها يکبار زمانی که فايل لود می شود بار می شود.

    #ifndef _FILE_NAME_H_
    #define _FILE_NAME_H_
       /* code */
    #endif // #ifndef _FILE_NAME_H_

    شناسه ای که مقابل ifndef# ذکر می شود لازم نيست حتما مقداری داشته باشد زيرا با اضافه شدن خط define# تعريف می شود.


    مثال. تعريف ثابت خاص NULL توسط راهنماهای شرطی.

    #ifndef NULL
    #define NULL (void *)0
    #endif // #ifndef NULL

    مثال. راهنماهای شرطی برای بلوکی که شامل توضيحات چندخطی است و می خواهيد همگی توضيحی شوند روش خوبی است.

    #if 0
    /* comment ...
    */
    // code
    /* comment */
    #endif

    بازدید : 919 تاریخ : نویسنده : بهرام محمدپور | نظرات ()
    آمار سایت
  • آمار مطالب
  • کل مطالب : 4311
  • کل نظرات : 17
  • آمار کاربران
  • افراد آنلاین : 2
  • آمار بازدید
  • بازدید امروز : 2,306
  • باردید دیروز : 13,194
  • گوگل امروز : 21
  • گوگل دیروز : 36
  • بازدید هفته : 15,500
  • بازدید ماه : 154,310
  • بازدید سال : 842,230
  • بازدید کلی : 6,695,956
  • نظرسنجی
    چه مطالبی در سایت قرار دهیم؟





    کدهای اختصاصی