ثابتها در C
تعریف مقادیر ثابت با const و #define و تفاوت این دو روش
ثابتها (Constants) چیست؟
وقتی مقداری در طول برنامه هرگز نباید تغییر کند (مثل عدد پی یا نرخ مالیات)، از ثابت استفاده میکنیم. تلاش برای تغییر مقدار ثابت، خطای کامپایل میدهد.
روش ۱: کلمه کلیدی const
const float PI = 3.14159;
const int MAX_STUDENTS = 50;
printf("%f", PI);
⚠️ باید هنگام تعریف، مقدار بدهید؛ بعداً نمیتوان تغییرش داد.
روش ۲: #define (ماکرو پیشپردازنده)
#define PI 3.14159
#define MAX 100
printf("%f", PI);
در این روش نقطهویرگول و علامت = نمیگذاریم! پیشپردازنده قبل از کامپایل، هر جای کد که PI ببیند، مقدار 3.14159 را جایگزین میکند.
مقایسه const و #define
| ویژگی | const | #define |
|---|---|---|
| نوع داده | دارد (مثل float) | ندارد — فقط جایگزینی متن |
| بررسی خطا | کامپایلر بررسی میکند | کمتر ایمن است |
| دیباگ | آسانتر | سختتر |
| محدوده (Scope) | دارد | سراسری از محل تعریف |
قرارداد نامگذاری
ثابتها معمولاً با حروف بزرگ نوشته میشوند تا از متغیرها متمایز باشند:
const double TAX_RATE = 0.09;
#define MAX_SIZE 100
مثال عملی
#include <stdio.h>
#define PI 3.14159
int main() {
const double TAX = 0.09;
double price = 100.0;
printf("Final price: %.2f", price + price * TAX);
return 0;
}
نکات مهم
- برای ثابتهای عددی از const استفاده کنید (ایمنتر است)؛ #define بیشتر برای مقاصد خاص کاربرد دارد
- ثابتها خوانایی کد را بالا میبرند:
MAX_USERSاز عدد خام1000گویاتر است - اگر مقدار ثابت را در آینده تغییر دهید، فقط یکجا باید ویرایش کنید
این مبحث بخشی از دوره آموزش کامل زبان C است.