Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so:laboratoare:resurse:c_tips [2016/06/05 17:46]
adrian.stanciu
so:laboratoare:resurse:c_tips [2016/06/05 17:51] (current)
adrian.stanciu [Folosirea specificatorului static pentru variabile globale și funcții]
Line 451: Line 451:
  
 ==== Folosirea specificatorului "​static"​ pentru variabile globale și funcții ==== ==== Folosirea specificatorului "​static"​ pentru variabile globale și funcții ====
 +
 +O variabilă globală sau o funcție declarată cu specificatorul "​static"​ are internal [[http://​en.cppreference.com/​w/​c/​language/​storage_duration | linkage]], adică poate fi referită doar din translation unit-ul respectiv (un translation unit reprezintă un fișier sursă .c împreună cu toate fișierele header pe care acesta le include).
 +
 +Avantajele acestei practici sunt:
 +  * simbolurile sunt vizibile doar în translation unit-ul respectiv; astfel, se evită poluarea namespace-ului global și se reduc șansele conflictelor de nume
 +  * încapsulare:​ exte expusă doar interfața publică a modulului (nu și obiectele și funcțiile interne ce contribuie la implementarea interfeței)
  
 ===== Utilizare API ===== ===== Utilizare API =====
so/laboratoare/resurse/c_tips.txt · Last modified: 2016/06/05 17:51 by adrian.stanciu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0