نمایش نتایج 1 تا 3 از 3

نام تاپیک: دستورات پیش پردازنده

  1. #1
    کاربر دائمی آواتار ICEMAN
    تاریخ عضویت
    تیر 1383
    محل زندگی
    Hyper-V
    پست
    476

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

    سلام ...
    یه توضیحی در مورد این دستورات و جای استفاده شون یه توضیحی به من بدید .

    #define
    #ifdef
    #ifndef
    #if
    #endif
    #elif

    بعضی جاها از define برای مثل توابع استفاده میشه مثلا :
    #define CIRCLE_AREA( x ) ( PI * ( x ) * ( x ) )

    چه فرقی با تعریف معملی به صورت یه function داره مثلا :
    double circleArea( double x ) { return 3.14159 * x * x; }


    ممنون

  2. #2
    فانکشن در زمان کامپایل بصورت یک قطعه باینری با برنامه ترکیب میشه . چیزی که در موردش سوال کردی ماکرو هست . ماکرو ها در مرحله پیش پردازش ، یعنی قبل از کامپایل اصلی ، تبدیل به کد سی میشن ، و بعد کامپایل میشن . استفاده از ماکرو ها منافع زیادی داره ، مثل میشه بر اساس برخی پارامترها فانکشن تولید کرد ، یا بر اساس کتابخانه های موجود ، یا معماری سخت افزاری سیستم و ...قسمتی از اجزاء یک تابع رو در زمان پیش پردازش تولید کرد ، تا بعد کامپایل بشه .
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  3. #3
    البته استفاده از ماکرو فقط برای کدهای کوچک توصیه می شه و برای قطعه کدهای بزرک از توابع استفاده کن
    اون تعداد دستور اول هم در واقع مسیر کامپایل رو تعیین می کنند.مثلا

    #ifdef Win32
    int _stdcall WinMain(...)
    #else
    int main()
    #endif
    {
    }


    میگه اگر Win32 تعریف شده بود پیاده سازی تابع بصورت WinMain وگرنه بصورت main باشه
    در واقع این دستورات ، دستورات شرطی کردن کامپایل هستند.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •