Czy mogę wiedzieć, gdzie zmienna volatile
jest zapisywana w pamięci?Gdzie przechowywane są zmienne ulotne?
Jeśli deklaruję globalnie, oznacza miejsce, w którym jest przechowywane w pamięci?
volatile int a =10; int main() { printf("Global A value=%d",a); return 0; }
Jeśli deklaruję lokalnie w funkcji oznacza, gdzie jest przechowywane w pamięci?
int main() { volatile int a =10; printf("Local A value=%d",a); return 0; }
Czy przechowywane w segmencie stosu/RAM/data?
Proszę wyjaśnić moje wątpliwości.
Jakiego rodzaju odpowiedzi szukasz? Co masz na myśli przez "gdzie to jest przechowywane w pamięci?" Czy chcesz uzyskać jego adres? Czy próbujesz zrozumieć, z jakiej puli pamięci pochodzą te zmienne, zgodnie z definicjami standardu dla takich pul? –
@NicolBolas: Sądzę, że część pytania brzmi "czy kwalifikowanie zmiennej za pomocą' volatile' zmienia lokalizację pamięci, w której kompilator umieszcza zmienną ', której odpowiedź brzmi "nie". –
Nie widzę, jak to jest duplikat drugiego. Drugi dotyczy "tego, co jest" lotne ", to jest" jaki wynik ma w odniesieniu do adresów pamięci ". – glglgl