danke roker002 für den link. aber leider ist da auch nur das allgemeine konzept zur anwendung von volatile beschrieben. das konnte/habe ich auch so in verschiedener literatur inkl. Stroustrup nachgelesen und verstanden. das allgemeine konzept erklärt jedoch nicht wie ein anderer prozess/treiber/hardware genau diese variable schreibt bzw. wie ich auf den speicherbereich außerhalb meines eigenen prozesses zugreife. Im übrigen beabsichtige ich nicht auf diesen bereich schreibend zuzugreifen (s.o. definition jeweils mit const abgesichert). mir ging es in dem konkreten beispiel darum den aktuellen wert der rtc auszulesen. leider wird unter windows stets die exception ausgelöst, was weiter nicht tragisch ist, da ich als alternative die performance counter nehmen kann um das gleiche zu erreichen, was ich über die rtc hätte machen wollen. mir sah es nur etwas "performanter" aus, direkt auf einen speicherbereich zuzugreifen ohne die windows api zu verwenden. schließlich wäre das einsatzgebiet, wie oben bereits erwähnt, in einem kritischen bereich des programms, sprich es wird sehr oft durchlaufen und sollte deswegen sehr performant sein. das volatile sehe ich zum jetzigen zeitpunkt nur noch als eine möglichkeit um dem kompiler zu sagen: "Hey, wenn das programm die variable verwendet, dann nimm immer den tatsächlichen wert aus diesem speicherbereich und lass die finger von irgendwelchen optimierungen!". ich könnte es dann für threads verwenden wo sichergestellt ist, das der eine thread nur lesend drauf zugreift, während ein 2. thread nur schreibend drauf zugreift. aber das ist dann auch nur für threads innerhalb eines prozesses möglich, prozessübergreifend wirds dann nicht möglich sein, weil eben der zugriff durch windows geblockt wird. ich bin mir auch dessen bewusst, das ich mit hilfe von mutex / semaphore eine synchronisierung implementieren muss um race conditions zu vermeiden. Nichts desto trotz, vielen dank für deine anteilnahme...
grüße rossibaer
grüße rossibaer