خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
آموزش زبان C : کلاس های حافظه (Storage Classes)
یک کلاس حافظه (Storage Class) محدوده متغیر (scope) و همین طور طول عمر (life-time) آن را مشخص می کند. در زبان برنامه نویسی C چهار نوع مختلف کلاس حافظه (Storage Class) وجود دارد که در این آموزش به آنها خواهیم پرداخت :
کلاس حافظه auto کلاس حافظه پیش فرض، تمامی متغیرهای محلی می باشد.
در مثال بالا دو متغیر معرفی شده اند که هر دو از کلاس حافظه auto برخوردار هستند.
کلاس حافظه register به جای ذخیره سازی در RAM کامپیوتر، مستقیما در CPU ذخیره می شود. سرعت دسترسی به این متغیرها به دلیل اینکه در CPU هستند بسیار بالا می باشد. اما با توجه به محدودیت حافظه CPU تضمینی وجود ندارد که متغیر شما مستقیما در CPU ذخیره شود، بلکه در صورتی که در CPU فضای آزادی باشد در آنجا ذخیره خواهد شد.
کلاس حافظه static به کامپایلر می گوید که یک متغیر را زنده نگهدارد و آن را از بین نبرد. این متغیر در طول زمان اجرای برنامه، در دسترس خواهد بود و همین طور مقدار آن نیز از بین نخواهد رفت. مثال زیر در درک کلاس حافظه static به شما کمک می کند.
کلاس حافظه extern در مواقعی که می خواهید یک متغیر را در فایلی خروجی معرفی کنید، کاربرد خواهد داشت.
آموزش قبلی : آموزش زبان C : صرفنظر کردن از مراحل حلقه با دستور Continue
آموزش بعدی : آموزش زبان C : معرفی آرایه (Array Declaration)
-
auto
-
register
-
static
-
extern
کلاس حافظه auto
کلاس حافظه auto کلاس حافظه پیش فرض، تمامی متغیرهای محلی می باشد.
{
int mount;
auto int month;
}
در مثال بالا دو متغیر معرفی شده اند که هر دو از کلاس حافظه auto برخوردار هستند.
کلاس حافظه register
کلاس حافظه register به جای ذخیره سازی در RAM کامپیوتر، مستقیما در CPU ذخیره می شود. سرعت دسترسی به این متغیرها به دلیل اینکه در CPU هستند بسیار بالا می باشد. اما با توجه به محدودیت حافظه CPU تضمینی وجود ندارد که متغیر شما مستقیما در CPU ذخیره شود، بلکه در صورتی که در CPU فضای آزادی باشد در آنجا ذخیره خواهد شد.
{
register int miles;
}
کلاس حافظه static
کلاس حافظه static به کامپایلر می گوید که یک متغیر را زنده نگهدارد و آن را از بین نبرد. این متغیر در طول زمان اجرای برنامه، در دسترس خواهد بود و همین طور مقدار آن نیز از بین نخواهد رفت. مثال زیر در درک کلاس حافظه static به شما کمک می کند.
#include "stdio.h"
void func(void);
static int count = 5;
int main() {
while (count--){
func();
}
getchar();
return 0;
}
void func(void){
static int i = 5;
i ++;
printf("i is %d and count is %d\n", i, count);
}
کلاس حافظه extern
کلاس حافظه extern در مواقعی که می خواهید یک متغیر را در فایلی خروجی معرفی کنید، کاربرد خواهد داشت.
برای مشاهده فهرست آموزش های این دوره آموزشی بر روی لینک زیر کلیک کنید :
آموزش قبلی : آموزش زبان C : صرفنظر کردن از مراحل حلقه با دستور Continue
آموزش بعدی : آموزش زبان C : معرفی آرایه (Array Declaration)
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: