فاطمه طاهریان

Fatemeh Taherian
29 - پیام , 6410 - نظر

متغیرها(3)

تفاوت متغیرهای static با متغیرهای دیگرچیست؟

تفاوت متغیرهای static با متغیرهای سراسری این است که این متغیرها تنها در همان تابعی که تعریف شده اند شناخته شده اند.
و تفاوت این متغیرها با متغیرهای اتوماتیک این است که این متغیرها به صورت پایدار هستند وبا خروج از تابع از بین نمی روند.

*به غیر از متغیرها ، تابع ها نیز می توانند از نوع static تعریف شوند که در این صورت این تابع خارج از فایلی که در آن اعلان شده است ، قابل دسترسی نیست.


متغیر ثبات _register چیست؟

زمانی که متغیر از این نوع ثبت می شود  مستقیما در CPU قرار می گیرد که این کار به سرعت بخشیدن به برنامه کمک می کند ، اما با محدودیت های زیادی روبرو است که ناشی از واقعیت های سخت افزاری است، در هر تابع تنها تعداد محدودی متغیر را می توان از این نوع تعریف کرد، اگر تعداد متغیرهایی که از این نوع تعریف می شوند زیاد شود کامپایلر کلمه register را نادیده می گیرد وبرنامه را کامپایل می کند.

اعلان  این متغیر به صورت زیر است:

register  int  x;

register char c;

دقت کنید که اعلان ثبات_register را تنها می توان بر متغیرهای اتوماتیک و آرگومان های یک تابع اعمال کرد.

ارسال شده در تاریخ ۲۳ اسفند ۱۳۸۳ - 2:10 عصر

نظرات

# پاسخ به: متغیرها(3)  

سلام.
تعریف شما از متغیر ststic درست نمی باشد
۱۹ خرداد ۱۳۸۴ - 5:41 عصر | Shahabfar

# پاسخ به: shahabfar  

سلام
من منظور شمارا از درست نبودن تعریف متوجه نشدم، من در اینجا تنها مقایسه بین متغیر ها انجام داده ام
،خوب بود اگر منظورتان را بیشتر توضیح می دادید.

متشکرم!
۲۳ خرداد ۱۳۸۴ - 2:13 عصر | فاطمه

# پاسخ به: متغیرها(3)  

سلام. من خودم در مورد این متغیر سوال دارم ازتون کمک می خوام. میشه درمورد 4کلاس حافظه برام اطلاعات ایمیل کنید لطفا. خیلی نیاز دارم اگه کمکم کنین ممنون میشم. static و ...........
۱۲ اردیبهشت ۱۳۸۸ - 2:08 صبح | سوده

ارسال نظرات

عنوان:  
نام:  
آدرس الکترونیکی:
زبان:
توضیح:  
لطفا متن مقابل را در زیر وارد کنید
(کوچک یا بزرگ بودن حروف مهم نیست)