C-də statik və uçucudan birlikdə istifadə edə bilərikmi?
C-də statik və uçucudan birlikdə istifadə edə bilərikmi?

Video: C-də statik və uçucudan birlikdə istifadə edə bilərikmi?

Video: C-də statik və uçucudan birlikdə istifadə edə bilərikmi?
Video: Keçid balları aşağı salına bilər? 2024, Aprel
Anonim

Statik dəyişənlər funksiya çağırışları arasında öz dəyərini saxlayırlar. Uçucu dəyişənlər (bu, əksinə deyil statik ) var istifadə olunur dəyişən olduqda istifadə olunur həm ISR (xidmətin kəsilməsi rejimi) daxilində, həm də ondan kənarda. Uçucu kompilyatora hər zaman dəyişəni CPU registrində keşləmə əvəzinə RAM-dan yükləməyi söyləyir.

Eynilə soruşa bilərsiniz ki, biz statik və uçucudan birlikdə istifadə edə bilərikmi?

Hətta əgər Sən giriş a statik birdən çox mövzu vasitəsilə dəyər, hər mövzu bacarmaq yerli cachedcopy var! Bunun qarşısını almaq üçün bacararsan dəyişəni kimi elan edin statik uçucu və bu olacaq mövzunu hər dəfə qlobal dəyərdə oxumağa məcbur edin. Bununla belə, uçucu düzgün sinxronizasiya üçün əvəzedici deyil!

Eynilə, niyə C-də uçucu istifadə edirik? C uçucu açar söz dəyişən elan edildikdə ona tətbiq olunan kvalifikatordur. O, kompilyatora bildirir ki, dəyişənin dəyəri istənilən vaxt dəyişə bilər - kompilyatorun yaxınlıqda tapdığı kod heç bir hərəkət etmədən. Bunun fəsadları kifayət qədər ciddidir.

Bunu nəzərə alsaq, C-də statik uçucu nə deməkdir?

statik dəyişənin əhatə dairəsinə istinad edir. Əgər dəyişən qlobaldırsa, bu o deməkdir ki, əhatə dairəsi onun elan edildiyi mənbə faylı ilə məhdudlaşır. Əgər dəyişən işləmək üçün lokaldırsa, bu, bu dəyişəni saxlamaq üçün istifadə olunan yaddaşın proqramın statik olaraq ayrılmış yaddaşında olması deməkdir.

C-də uçucu ilə const istifadə edə bilərikmi?

Bəli. Dəyişən bacarmaq hər ikisi elan edilməlidir uçucu və Sabit in C . Const dəyişdirici daxili proqram tərəfindən dəyişənin dəyərinin dəyişdirilməsinə icazə vermir. Lakin, bu, dəyəri demək deyil const dəyişən xarici kodla dəyişdirilməməlidir.

Tövsiyə: