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

نام تاپیک: اعلان نوع متغیر بعد از const

  1. #1

    اعلان نوع متغیر بعد از const

    می خواستم بپرسم چرا در جمله هایی مثل زیر
    const float pi 3.14
    باید نوع متغیر را اعلام کنیم و در غیر اینصورت چه می شود؟(منطق این کار را می خواهم)

  2. #2
    نوع متغیر میزان فضائی که باید تخصیص داده شود را مشخص میکند.
    UNIX is simple. It just takes a genius to understand its simplicity
    -- Dennis Ritchie

  3. #3
    با تشکر ولی من اطلاعات بیشتری می خواهم
    منطق کار را می خواهم بدانم

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1385
    محل زندگی
    تهران
    پست
    1,486
    منطقش واضح هست. همونطور که جناب Inprise گفتن وقتی شما بخوای هر متغیری تعریف کنی کامپایلر باید اونو بشناسه و بدونه که برای اون چقدر فضا باید بگیره.این قانون برای همه متغیر هایی که تعریف میکنی برقراره، جدا از اینکه متغیر const هست یا نه. اگر هم نوع متغیر رو مشخص نکنی خوب واضحه که کامپایلر اونو نمیشناسه و بهت ارور میده .با قرار دادن کلمه const پشت متغیر فقط به کامپایلر میگی که این متغیری که تعریف کردی ثابت هست و مقدار اون نباید تغییر پیدا کنه
    ولی ممکنه بگی که چرا وقتی اینجوری مینویسیم اروری نمیده:

    const s=2;

    توی این حالت برای کامپایلر به صورت پیشفرض تعریف شده که اگه با همچین حالیتی برخورد کرد نوع متغیر رو int در نظر بگیره. ولی معمولا همیشه برای واضح بودن کد مقدار int اون هم نوشته میشه

  5. #5
    برای اینکه کامپایلر متوجه شود نوع آن را باید چگونه در حافظه تعریف و سپس با روش های مخصوص همان نوع از آن استفاده کند، مثلا دو نوع int و float را در نظر بگیرید که هر دو 4 بایت هستند ولی بدون ذکر نوع float کامپایلر از کجا بداند که بازه تعریف آن (3.4E +/- 38 (7digits می باشد و یا چگونه بفهمد اعشار از کجای 4 بایت شروع می شود ؟
    پس نوع باید مشخص شود تا بعد ها در موقع ارسال به توابع و یا هر استفاده دیگری بداند چگونه از آن استفاده کند.

  6. #6
    نقل قول نوشته شده توسط Nima_NF مشاهده تاپیک

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

  7. #7
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884
    من این سئوال رو توی کلوب به طور کامل جواب دادم!!!
    در هر حال illegalyasync جان توجه کن که اینی که شما فرمودید کارکرد ماکرو هاست (در واقع یکی از کارکرد های ماکروها) و علت وجودی نوع const در زبان سی چیز دیگه ای است.دوتا از دلایل عبارتند از:
    1) متغیرهای که در کل برنامه ثابت اند و لی گاهی اوقات (به طور استثنا) نیاز به تغییر اونها داریم
    2) استفاده در فرستاندن پارامتر به توابع (و اطمینان از عدم تغییر در اونها)

    موفق باشید

  8. #8
    من میدونم کارکرد ماکرو چیه . به اون کلمه « بهینه سازی» دقت کن و قسمت بهینه سازی ویژوال سی رو تو ام اس دی ان یه نگاهی بنداز ;)

  9. #9

    تشکر

    از نظرات همه ی دوستان تشکر می کنم
    موفق باشید

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

  1. دستور const
    نوشته شده توسط programmermp در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 7
    آخرین پست: سه شنبه 24 اردیبهشت 1392, 15:11 عصر
  2. فرق تعریف ثابت ها بصورت const و define#
    نوشته شده توسط mr_esmaily در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 9
    آخرین پست: شنبه 11 تیر 1384, 08:11 صبح
  3. Const && static
    نوشته شده توسط Mahdi_20 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 27 بهمن 1382, 07:49 صبح

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

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