اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

تفاوت کلاس حافظه خارجی و کلاس حافظه استاتیک عمومی

+1 امتیاز
852 نمایش

متغیرهای عمومی که در خارج از تابع main تعریف میشن دارای کلاس حافظه خارجین. حالا اگر متغیرهایی با کلاس حافظه استاتیک عمومی قبل از تابع main تعریف بشه، این متغیرها با متغیرهای عمومی چه تفاوتهایی دارن؟
مثال:

static int x,y;
int m,n;
int main(){
...
}
پرسیده شده سه شنبه ۱۰ اردیبهشت ۱۳۹۲ در C++ توسط CPP_Crawler5  

1 پاسخ

0 امتیاز

اگر کل برنامه تنها در یک فایل باشه، هیچ تفاوتی با هم ندارن. اما گاهی ممکنه برنامه‌ها خیلی طولانی باشن و مجبور بشیم بخشهایی از برنامه رو در چند فایل بذاریم. که در این صورت متغیرهای استاتیک عمومی فقط در یک فایل (
در همون فایلی که تعریف شده) و متغیرهای عمومی در تمام فایلها قابل دسترسی هستن و برای دسترسی به اونها در فایلهای دیگه باید اونها رو با دستور extern به کامپایلر اعلان کرد.
(دستور extern به کامپایلر میگه برای این متغیرها حافظه جدیدی در نظر نگیره و از همون حافظه‌ای که در فایل دیگه بهش اختصاص داده شده استفاده کنه.)

پاسخ داده شده سه شنبه ۱۰ اردیبهشت ۱۳۹۲ توسط CPP_Crawler4