اعداد و ثابت ها در زبان برنامه نویسی C

به اعداد در زبان برنامه نویسی C میگن ثابت ها ( constant ) یا literal ها و در این مقاله تمام چیزهایی که در این مورد باید بدونید رو یادمیگیرید.

فهرست

– نوشتن اعداد صحیح در مبناهای مختلف در زبان C

– نوشتن اعداد حقیقی در زبان برنامه نویسی C

– پسوند های اعداد یا postfix ها در زبان برنامه نویسی C

– ماکروهای ثابت با define در زبان C

– ثابت با const در زبان C

– تفاوت define و const در زبان برنامه نویسی C

نوشتن اعداد صحیح در مبناهای مختلف در زبان برنامه نویسی C

  • برای نوشتن عدد در مبنای 10 کافیه عدد رو بنویسید.
  • برای نوشتن عدد در مبنای 8 ، عدد رو بعد از 0 بنویسید.
  • عدد در مبنای 16 بعد از 0x نوشته میشه.

در مثال زیر مقدار اولیه هر سه متغیر 24 است، اولی در مبنای 10 و دومی در مبنای 8 و سومی در مبنای 24 نوشته شده.


 

نوشتن اعداد حقیقی در زبان برنامه نویسی C

برای مثال اگر بخواهیم عدد 10 را در یک متغیر float ذخیره کنیم، یا بخواهیم از این عدد در یک عملیات float استفاده کنیم ، باید به کامپایلر بفهمونیم این عدد float است. برای این مقصود عدد را حداقل تا یک رقم اعشار باید نوشت. اعدادی که جز اعشاری ندارند ، صفر میگذارید و اعدادی که جز اعشاری دارند ، خودش را مینویسید. روش دوم نوشتن اعداد حقیقی بصورت علمی است.

 

 

پسوندها یا postfix ها در زبان برنامه نویسی C

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

 

 

روش دوم قرار دادن حروف postfix بعد از عدد هست. این حروف نوع عدد رو مشخص میکنن و برای همه ی انواع هم postfix وجود نداره. postfix ها در زبان C میتونن با حروف بزرگ یا کوچک نوشته شوند.

 

U : کوتاه شده unsigned یعنی 32 بیتی بدون علامت.

UL : کوتاه شده unsigned long یعنی 32 بیتی بدون علامت.

ULL : کوتاه شده unsigned long long یعنی 64 بیتی بدون علامت.

L :  کوتاه شده long یعنی 32 بیتی علامت دار.

LL : کوتاه شده long long یعنی 64 بیتی علامت دار.

f : کوتاه شده float یعنی float

 

const و define

 فرض کنید از یک عدد قراره بارها در کد استفاده بشه، مثلا عدد pi=3.14 . و دوست نداریم هر دفعه که میخواهیم از این عدد استفاده کنیم، خود عدد رو در کد بنویسیم، چیکار کنیم؟ دو راه داره:

تعریف ثابت با const

تعریف ماکرو با #define

ماکروهای ثابت با define در زبان برنامه نویسی C

با استفاده از دستور پریپراسسور #define میتونیم در زبان C ماکرو تعریف کنیم. سینتکس تعریف ماکرو ثابت در زبان سی به شکل زیر هست. دستورات پریپراسسور قبل از کامپایل اجرا میشن و با خط زیر ، هر جایی در برنامه عبارت __PI وجود داشته باشه، با مقدار 3.14 جایگزین میشه، از نظر CPU فرقی نمیکنه که عدد 3.10  رو در کد بنویسیم یا از ماکرو استفاده کنیم.

 

تعریف ثابت با const در زبان برنامه نویسی C

با اضافه کردن کلمه کلیدی const به تعریف متغیر ، یک ثابت تعریف میشه.

ثابت همیشه مقدار اولیش رو نگه میداره و نمیشه مقدارش رو در کد تغییر داد. این محتوا با اعداد در کد متفاوت هست و در یک آدرس مشخص در فلش ذخیره خواهد شد.

 

تفاوت ماکرو با ثابت const

برای بررسی دقیق این مسئله باید اسمبلی کد بررسی بشه و در مورد CPU های مختلف چون دستورات و امکانات متفاوتی دارند ، مسئله متفاوت هست ولی بصورت عمومی ، دسترسی به اعداد معمولی و ماکرو ها در کد ممکنه سریعتر باشه، چون در مکانی به نام literal pool در فلش ذخیره میشن بر خلاف const که در آدرس مشخصی در فلش ذخیره میشن.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا