Possiamo usare statico e volatile insieme in C?
Possiamo usare statico e volatile insieme in C?

Video: Possiamo usare statico e volatile insieme in C?

Video: Possiamo usare statico e volatile insieme in C?
Video: ERICK È GELOSO DI DOMINICK E DEL DOTTOR TIMOTI E HA REAGITO COSÌ! 2024, Aprile
Anonim

Statico le variabili mantengono il loro valore tra le chiamate di funzione. Volatile variabili (che non è l'opposto di statico ) sono Usato quando una variabile è Usato sia all'interno di un ISR (routine di servizio di interruzione) che al di fuori di esso. Volatile dice al compilatore di caricare sempre una variabile dalla RAM piuttosto che memorizzarla nella cache in un registro della CPU.

Allo stesso modo ci si potrebbe chiedere, possiamo usare statico e volatile insieme?

Anche se tu accesso a statico valore attraverso più thread, ogni thread Potere avere la sua copia cache locale! Per evitare questo Puoi dichiarare la variabile come statico volatile e questo volere forza il thread a leggere ogni volta il valore globale. Però, volatile non sostituisce una corretta sincronizzazione!

Allo stesso modo, perché usiamo volatile in C? C è volatile parola chiave è un qualificatore che viene applicato a una variabile quando viene dichiarata. Dice al compilatore che il valore della variabile può cambiare in qualsiasi momento, senza che venga intrapresa alcuna azione dal codice che il compilatore trova nelle vicinanze. Le implicazioni di questo sono piuttosto serie.

Considerando questo, cosa significa volatile statico in C?

statico si riferisce all'ambito della variabile. Se la variabile è globale, significa che l'ambito è limitato al file sorgente in cui è stata dichiarata. Se la variabile è locale a una funzione, significa che la memoria utilizzata per contenere questa variabile è nella memoria allocata staticamente dell'applicazione.

Possiamo usare const con volatile in C?

Sì. Una variabile Potere essere dichiarato come entrambi volatile e costante in C . Const modificatore non consente di modificare il valore della variabile dal programma interno. Ma non significa che il valore di cost variabile non deve essere modificata dal codice esterno.

Consigliato: