اطلاعیه

Collapse
No announcement yet.

کلاس حافظه ها

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کلاس حافظه ها

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

    #2
    پاسخ : کلاس حافظه ها

    نوشته اصلی توسط rahmani1404
    سلام بر همه
    من در مورد کلاس حافظه ها مطالبی می خواستم ، در اینترنت گشتم چیزی بدست نیاوردم ،اگه می شود کمکم کنید.
    فقط اینو میدونم که به چهار گروه تقسیم می شون.
    استاتیک
    اتوماتیک
    رجیستری
    اکسترن
    در مورد کارایی هر کدوم.
    با تشکر
    تو کتاب جعفر نژاد قمی که PDFاش هم تو نت هست کامل توضیح داده.
    موفق باشید.
    بگذارعشق خاصیت تو باشد نه رابطه خاص تو باکسی
    موفقيت پيش رفتن است نه به نقطه ي پايان رسيدن
    نلسون ماندلا

    دیدگاه


      #3
      پاسخ : کلاس حافظه ها

      متغیرهای C در حالت عادی از نوع اتوماتیک هستند یعنی اینکه هنگام فراخوانی تابع ایجاد و هنگام پایان یافتن کار تابع از بین میرند و فضای حافظه شون به سیستم برمیگرده.
      متغیرهای استاتیک با اولین فراخوانی یک تابع ایجاد و در صورت لزوم مقدار دهی اولیه میشند ولی با پایان یافتن کار تابع از بین نمیرند. اگه برای بار دوم تابع فراخونی بشه، مقدار این متغیرها برابر با آخرین مقدار فراخونی قبلیه
      متغیری که بصورت رجیستر تعریف میشه ، کامپایلر رو وادار میکنه که اونرو در یکی از ثباتهای اصلی cpu قرار بده. معمولا متغیرهایی بصورت رجیستر تعریف میشن که بسیار پرکاربرد هستند. یادت باشه که تعداد ثباتها کمه و خیلی از کامپایلرها بطور هوشمند خودشون یه متغیر رو ممکنه بصورت رجیستری ایجاد کنند.
      و در نهایت هر وقت که میخواستی در یک برنامه با چند فایل سورس از یک متغیر که در فایل دیگه ای تعریف شده استفاده کنید باید با کلمه extern این موضوع رو به کامپایلر یادآوری کنید

      دیدگاه


        #4
        پاسخ : کلاس حافظه ها

        من وقتی از اینتراپت تایمر avr استفاده می کردم ، متغیر رو هرکاری کردم ، وقتی از داخل اینتراپت برمیگشت ، مقدارش رو از دست میداد !
        برای اینتراپت ها باید از روش خاصی استفاده کنیم ؟

        دیدگاه


          #5
          پاسخ : کلاس حافظه ها

          یه متغیر عمومی در بالای main تعریف کن و از اون ساتفاده کن

          دیدگاه

          لطفا صبر کنید...
          X