Według tego defect report C++ 03 standard nie gwarantuje, że w poniższym kodzie:Jaki jest zgodny z C++ 03 sposób pobierania wartości ze zmiennej lotnej?
volatile int x;
void f() {
x;
}
zmienna jest odczytywana z.
Następnie, jak napisać kod, który właśnie odczytał zmienną wartość lotną i odrzuca wynik (czytać ze względu na odczyt)?
z ciekawości, dlaczego chcesz to zrobić? –
@AndreasBrinck Nie wiem, dlaczego OP chciałby to konkretnie, ale jest dość powszechny w programowaniu wbudowanym, gdzie możesz chcieć odczytać z rejestru zapisanego w pamięci, a odczyt może spowodować pewne efekty uboczne. –
@Andreas Brinck: Jest to konieczne, aby wymusić na systemie operacyjnym faktyczne przydzielenie strony pamięci - alokacja jest opóźniona do pierwszego dostępu. – sharptooth