Ich habe ein Array. Ich verwende es aus einem Hauptprogramm. Ich verwende es von einem ISR. Muss ich es immer als volatil definieren? Welche Optimierung kann der Compiler auf mein Array anwenden?Verwenden von Arrays und flüchtige
0
A
Antwort
2
Wenn Sie eine int
deklarieren und dann zweimal lesen, kann der Compiler den ersten Lesevorgang "erinnern" und sich nicht darum kümmern, ihn erneut zu lesen.
static int value = 0;
void ISR() {
++value;
} // ISR()
int main() {
while (value==0) {
// Do nothing
} // while
} // main()
Der Compiler value
einmal, und dann testen, immer und immer wieder, immer als Null lesen konnte! Das ISR ändert es, aber der Compiler "sieht" diese Änderung nicht.
Wenn Sie value
als volatile
markieren, dann wird der Compiler es immer lesen: es wird sie nie vergessen:
static volatile int value = 0;
Es spielt keine Rolle, ob es ein Array ist: das gleiche Problem passieren könnte.
Verwandte Themen
- 1. flüchtige
- 2. PostgreSQL flüchtige Ausdrücke und Unterabfragen
- 3. Flüchtige Seltsamkeit
- 4. Vim flüchtige zurück von: Glog
- 5. Flüchtige Funktion
- 6. Flüchtige Variable
- 7. flüchtige Überlastung?
- 8. C++ flüchtige und Operatorüberlastung für CUDA-Anwendung
- 9. Was sind transiente und flüchtige Modifikatoren? -
- 10. Java flüchtige Referenz vs. AtomicReference
- 11. Verwenden von Zufallsvariablen in Arrays
- 12. Unterschied zwischen Synchronisation von Feld liest und flüchtige
- 13. Bedeutung von flüchtigen für Arrays und Typumwandlungen
- 14. C# flüchtige Doppel
- 15. C# flüchtige Array-Elemente?
- 16. Wie ohne flüchtige
- 17. Flüchtige Immobilien in Kotlin?
- 18. volatile und const flüchtige std :: tuple und std :: get
- 19. JSON.Simple mit verschachtelten Objekten und Arrays verwenden
- 20. AngularJS: Filter zum Teilen von Arrays in Arrays verwenden
- 21. Verwenden von Arrays mit anderen Arrays in Python
- 22. Arrays in JavaScript verwenden
- 23. eine flüchtige Variable in C
- 24. Verwenden von Arrays in Oracle-Skripts
- 25. Verwenden von dynamischen mehrdimensionalen Arrays in C++
- 26. Verwenden von Arrays mit loadClip in AS?
- 27. Verwenden von Numpy-Arrays als Nachschlagetabellen
- 28. Wo sind flüchtige Variablen gespeichert?
- 29. Verwenden von My.Settings zum Speichern eines Arrays
- 30. Verwenden von printf in Java mit Arrays
Danke. Ich weiß es. Ich habe mich nur mit Arrays beschäftigt. Wenn Sie "nicht wichtig" sagen, verwende ich "flüchtig". – koluna