Können wir in C statisch und flüchtig zusammen verwenden?
Können wir in C statisch und flüchtig zusammen verwenden?

Video: Können wir in C statisch und flüchtig zusammen verwenden?

Video: Können wir in C statisch und flüchtig zusammen verwenden?
Video: Was sind Structs in C#? 2024, November
Anonim

Statisch Variablen behalten ihren Wert zwischen Funktionsaufrufen. Flüchtig Variablen (was nicht das Gegenteil von. ist statisch ) sind Gebraucht wenn eine Variable ist Gebraucht sowohl innerhalb einer ISR (Interrupt Service Routine) als auch außerhalb. Flüchtig weist den Compiler an, eine Variable immer aus dem RAM zu laden, anstatt sie in einem CPU-Register zwischenzuspeichern.

In ähnlicher Weise kann man sich fragen, können wir statisch und flüchtig zusammen verwenden?

Selbst wenn Sie Zugang statisch Wert durch mehrere Threads, jeder Thread kann haben seine lokale Cachedcopy! Um es zu vermeiden du kannst deklariere die Variable als statisch flüchtig und das Wille zwingt den Thread, jedes Mal den globalen Wert zu lesen. Jedoch, flüchtig ist kein Ersatz für eine ordnungsgemäße Synchronisation!

Warum verwenden wir in C ebenfalls flüchtig? C ist volatil Schlüsselwort ist ein Qualifizierer, der auf eine Variable angewendet wird, wenn sie deklariert wird. Es teilt dem Compiler mit, dass sich der Wert der Variablen jederzeit ändern kann – ohne dass der Code, den der Compiler in der Nähe findet, eine Aktion durchführt. Die Implikationen davon sind ziemlich ernst.

In Anbetracht dessen, was bedeutet statisch flüchtig in C?

statisch bezieht sich auf den Gültigkeitsbereich der Variablen. Wenn die Variable global ist, bedeutet dies, dass der Gültigkeitsbereich auf die Quelldatei beschränkt ist, in der sie deklariert wurde. Wenn die Variable lokal für eine Funktion ist, bedeutet dies, dass sich der zum Halten dieser Variable verwendete Speicher im statisch zugewiesenen Speicher der Anwendung befindet.

Können wir const mit volatile in C verwenden?

Jawohl. Eine Variable kann als beides deklariert werden flüchtig und Konstante in C . Konst modifier erlaubt es nicht, den Wert der Variablen durch ein internes Programm zu ändern. Dies bedeutet jedoch nicht, dass der Wert von const Variable sollte nicht durch externen Code geändert werden.

Empfohlen: