vale1411
Genius
2 min. di lettura
Vota

Concetti Chiave

  • I specificatori di classe di memorizzazione influenzano la visibilità e il tempo di vita di variabili e funzioni in un programma.
  • Il qualificatore 'extern' consente di riferirsi a variabili globali definite in file esterni.
  • 'Static' limita la visibilità di variabili globali e funzioni a livello di file e prolunga la vita delle variabili locali.
  • Il qualificatore 'const' rende i dati immutabili, mentre 'volatile' permette modifiche da fonti esterne al programma.
  • 'Register' suggerisce al compilatore di ottimizzare l'accesso ai dati, ma non garantisce l'allocazione nei registri.

Specificatori di classe e qualificatori di tipo

Specificatori di classe di memorizzazione, modificano il tempo di vita e la visibilità di variabili e funzioni in un programma:
- extern: permette di referenziare una variabile globale la cui dichiarazione potrebbe essere in un file esterno
- static: se con variabili globali e funzioni, limita lo scope a livello di file, se con variabili locali, estende il tempo di vita alla durata intera del programma
- register: suggerisce al compilatore di rendere l’accesso alla variabile più rapido (memorizzando la variabile nei registri del preprocessore invece che nella RAM), ma il compilatore può ignorare questo suggerimento. Solo poche variabili possono essere memorizzate nei registri e possono appartenere ad un ristretto insieme di tipi. Se una variabili è dichiarata register, nonostante sia memorizzata nei registri o meno, non è possibile conoscere il suo indirizzo
- auto: è di default alle variabili locali, infatti sono anche chiamate variabili automatiche, questo specificatore è superfluo dato che le dichiarazioni in cui può essere usato sono di default auto
Quindi è possibile usare un solo specificatore di classe di memorizzazione per dichiarazione.

I qualificatori di tipo, forniscono proprietà aggiuntive ai tipi di dato:
- const: indica un tipo di dato il cui contenuto non può essere modificato, quindi è read-only
- volatile: indica un tipo di dato che può essere modificato da procedure esterne al programma, come dal sistema operativo o dall’hardware. I qualificatori di tipo possono essere applicati a tutte le combinazioni possibili di specifica tori di tipo, modificatori di tipo e specifica tori di classe di memorizzazione.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community