Odp: Protokół XBRA
Śmiem się nie zgodzić, po to jest właśnie volatile, żeby kompilator wiedział że dostęp ma efekty uboczne i nie może go optymalizować. Taki 'pusty' zapis w C może nie przetrwać agresywnej optymalizacji.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
3rd Annual Atari Homebrew Awards Rozpoczęła trzecia edycja głosowania na najlepszą produkcję dla ośmiobitowych maszyn Atari
New Year Disk 2021 Już dostępny
done and dusted
kronika polskiej demosceny
Adam Is Me za darmo Święta tuż, tuż, więc czas rozwiązać worek z prezentami...
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
Śmiem się nie zgodzić, po to jest właśnie volatile, żeby kompilator wiedział że dostęp ma efekty uboczne i nie może go optymalizować. Taki 'pusty' zapis w C może nie przetrwać agresywnej optymalizacji.
Ale jaki pusty? Masz adres i masz wartość, którą chcesz pod ten adres zapisać. W takim razie co nie jest 'pustym' zapisem? Wszędzie w kodzie mam wstawiać volatile?
Nie wszystko. Jeżeli jednak kompilator nie widzi akcesów po zapisie to może sobie ten zapis wyoptymalizować. Nie mówię że koniecznie tak się stanie, ale dla świętego spokoju volatile bym tam dał.
No właśnie nie może. Robisz zapis do pamięci i w pamięci znajdzie się taka wartość jaka powinna się tam ostatecznie znaleźć. Jedyne co robi volatile to wymuszeniena na kompilatorze, żeby wykonać KAŻDY access do tego samego adresu.
Chyba nie ... to zależy od optymalizacji jakiej dokonuje kompilator ... http://www.open-std.org/jtc1/sc22/wg14/ … /n1956.htm
Zapis też jest accesem. Jak kompilator zdecyduje się coś wyoptymalizować do rejestrów, to nie będzie zapisu do pamięci, nawet jak będziesz używał wskaźnika.
@artik-wroc zrób ten zapis i odczyt pamięci / rejestrów w asmie
będzie po problemie
Dzisiaj będę walczył. Myślę ,że już wiem, co tam może nie działać.
Strony Poprzednia 1 2
Zaloguj się lub zarejestruj by napisać odpowiedź
[ Wygenerowano w 0.064 sekund, wykonano 25 zapytań ]