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

نام تاپیک: فرق تعریف ثابت ها بصورت const و define#

  1. #1

    فرق تعریف ثابت ها بصورت const و define#

    سلام
    متوجه شدم که ثابت ها رو با کلمه کلیدی const بعنوان یک متغییر خصوصی در یک کلاس نمی شه تعریف کرد ولی با استفاده از define# میشه.
    می خواستم از تفاوت های دیگرشان مطلع شم.

    با تشکر.

  2. #2
    یکی از تفاوت هایی که من می دونم اینه که متغییر هایی که با define تعریف می شوند هیچ حجمی اشغال نمی کنند.

  3. #3
    اصولا اگر راجع به شباهتشون حرف بزنیم خلاصه تر میشه !
    با define عملا متغیری تعریف نمیشه! فقط یه جایگزاری ساده قبل از کامپایل برنامه انجام میشه! اما با const واقعا یه متغیر تعریف میکنی.
    مثلا این کد رو نگاه کن تا بفهمی چی میگم.
    #define n 10+2
    ...
    cout<<(n*2);

    خوب حالا فکر میکنی خروجی چیه؟ عملا قبل از کامپایل n با 10+2 جایگزین میشه و بعدش حاصل 14 چاپ میشه نه 24!
    :موفق:

  4. #4
    سلام
    مرسی جالب بود.
    ولی چرا 14 چاپ میشه ؟
    منظورم اینه که اگه n=10 اونوقت 20 چاپ میشه!
    منطقشو نفهمیدم؟!

  5. #5
    همونطور که گفتم define یه جانشینی ساده است. پس عبارت
    cout<<(n*2);

    تبدیل میشه به
    cout<<(10+2*2);

  6. #6
    سلام
    ممنون :flower:

  7. #7
    خواهش! :oops:

  8. #8
    فرق تعریف ثابت ها بصورت const و define#
    define برای ایجاد ماکرو استفاده میشه. یعنی مجموعه ای از دستورات که جایگزین فقط یک فرمان می شه یعنی در زمان کامپایل متن موجود در تعریف ماکرو عینا در محل نامیدن ماکرو قرارداده میشه. بعد کامپایل میشه.
    ولی چرا 14 چاپ میشه ؟
    خیلی ساده‏ست. تقدم عملیاتی ضرب قبل از جمع است. یعنی:
    10+2*2 => 10 + ( 2 * 2 ) => 10 + ( 4 ) => 14

  9. #9
    سلام
    خیلی ساده‏ست. تقدم عملیاتی ضرب قبل از جمع است. یعنی:

    10+2*2 => 10 + ( 2 * 2 ) => 10 + ( 4 ) => 14
    مشکله من این بود که چرا 2*(2+10) نشد ; که متوجه موضوع شدم.

  10. #10
    mr_esmaily عزیز
    دوستان بعضا بعلت عجله در جواب دادن متن کامل موضوع رو نمیخونند و علت اینم که بعضی مطالب چند باره تکرار میشن همینه :sunglass:

تاپیک های مشابه

  1. دستور const
    نوشته شده توسط programmermp در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 7
    آخرین پست: سه شنبه 24 اردیبهشت 1392, 15:11 عصر
  2. دستور #define
    نوشته شده توسط amir_civil در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 3
    آخرین پست: شنبه 29 دی 1386, 20:13 عصر
  3. اعلان نوع متغیر بعد از const
    نوشته شده توسط man-fatima در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 8
    آخرین پست: جمعه 13 مهر 1386, 22:17 عصر
  4. استفاده از define
    نوشته شده توسط afsar در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 28 خرداد 1384, 10:04 صبح
  5. Const && static
    نوشته شده توسط Mahdi_20 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 27 بهمن 1382, 07:49 صبح

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

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