Die übliche Beschreibung, daß eine Variable im Speicherbereich im Hintergrund von einem anderen Prozess oder von Hardware geändert wird, und daß der Compiler einen Lesezugriff wegoptimieren kann, greift zu kurz, wenn man Hardware-nah programmiert: Auch Schreibzugriffe können wegoptimiert werden, da z.B. mehrfache Schreibzugriffe vordergründig unsinnig sind, nicht aber unbedingt für dainterliegende Logik. Außerdem verhindert volatile das Umsortieren von scheinbar unabhängigen Lese- und Schreiboperationen, deren Reihenfolge für Hardware wiederum entscheident sein kann. -- 10:34, 6. Dez. 2013 (CET)