-
Data: 2019-02-14 23:03:48
Temat: Re: Zagwozdka w C Keil - wyjaśnienie.
Od: "Grzegorz Niemirowski" <g...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Irek.N. <t...@j...taki.jest.pl> napisał(a):
> Dlaczego miał by tak zrobić? Ponieważ volatile (w moim przekonaniu) mówi
> kompilatorowi, że może się spodziewać problemów z tą zmienną i nie może
> zakładać, że uda się ją odczytać etapowo (tak samo jak np. nie ma sensu ją
> buforować, tylko za każdym razem trzeba czytać).
Na szczęście co mówi volatile to jest zdefiniowane w standardzie a nie w
czyichś przekonaniach :)
volatile dotyczy wyłącznie optymalizacji. "Problemy" ze zmienną mogą brać
się z wielu różnych przyczyn, nie tylko z przerwań. Jest też np. DMA. Nie ma
sensu rozważać volatile w kontekstach, do których nie zostało stworzone lub
też oczekiwać, że kompilator przejmie rolę menedżera pamięci lub inną,
należącą do systemu operacyjnego lub programisty.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
Następne wpisy z tego wątku
- 15.02.19 08:57 Mateusz Viste
- 15.02.19 11:07 J.F.
- 15.02.19 20:57 Irek.N.
- 15.02.19 20:59 Irek.N.
- 16.02.19 22:53 Queequeg
- 16.02.19 23:03 Queequeg
- 16.02.19 23:11 Queequeg
- 16.02.19 23:26 Queequeg
- 17.02.19 03:55 k...@g...com
- 17.02.19 09:16 Mateusz Viste
- 17.02.19 11:57 J.F.
- 19.02.19 13:14 Queequeg
Najnowsze wątki z tej grupy
- Thunderbird i dysk...
- opornosc falowa
- Bateria 9V 6F22, alkaliczna v cynkowa, samorozładowanie, bateria wysokiej trwałości do miernika
- Tani zakup z ali?
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=