ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้
-
- перепутаем пальцы:) каким образом запись по неизвестному на момент компиляции адресу можно заменить записью по известному адресу? - Vit(22.09.2014 13:58)
- Я про чтение. Запись - в обработчике прерывания. Чтение - где-то в другом месте программы. Вот там кэширование вполне возможно. Логично? - SciFi(22.09.2014 14:01)
- при xxx = *(arr+i), где i volatile, нелогично - Vit(22.09.2014 14:05)
- Неправда. Или у нас разная "логика" :-) - SciFi(22.09.2014 14:09)
- ложь:) компиляторостроителю неизвестно, что будет лежать по неизвестному на момент компиляции адресу, потому он не сможет в регистр загнать константу. насчет выбросить присваивание - отдельный балет - Vit(22.09.2014 14:20)
- Пытаюсь включить телепатию. Регистр - фигура речи. На самом деле это "быстрая" память с известным фиксированным начальным адресом, способная вместить весь (небольшой) массив. Так понятнее? SciFi(185 знак., 23.09.2014 00:29)
- Вот реалистичный пример: SciFi(458 знак., 22.09.2014 14:37)
- i здесь не volatile. - Vit(22.09.2014 17:54)
- Это не важно. Если i будет volatile, ничего не изменится. - SciFi(22.09.2014 17:56)
- как раз именно это и важно. - Vit(22.09.2014 23:46)
- В каком именно месте? Со ссылками на нормативные документы, пожалуйста. Ибо на самом деле "не важно". - SciFi(22.09.2014 23:52)
- Вы утверждаете, что компиляторостроитель вправе заменить обращение по неизвестному на момент компиляции адресу обращением по фиксированному, да ещё и в регистрах. Полагаю, что натянуть сову на глобус несколько проще - Vit(23.09.2014 00:13)
- Чукча не читатель? Массив закеширован в регистрах ЦПУ (memory mapped) по адресу x. Обращение к элементу массива с индексом i происходит по адресу (x + i). Сова с глобусом идёт лесом. - SciFi(23.09.2014 00:17)
- адрес начала массива какая тварь на каком основании подменит в операции вычисления адреса со смещением? - Vit(23.09.2014 00:20)
- Вы меня потеряли. Нифига я не понял. - SciFi(23.09.2014 00:22)
- адрес начала массива какая тварь на каком основании подменит в операции вычисления адреса со смещением? - Vit(23.09.2014 00:20)
- Чукча не читатель? Массив закеширован в регистрах ЦПУ (memory mapped) по адресу x. Обращение к элементу массива с индексом i происходит по адресу (x + i). Сова с глобусом идёт лесом. - SciFi(23.09.2014 00:17)
- Вы утверждаете, что компиляторостроитель вправе заменить обращение по неизвестному на момент компиляции адресу обращением по фиксированному, да ещё и в регистрах. Полагаю, что натянуть сову на глобус несколько проще - Vit(23.09.2014 00:13)
- В каком именно месте? Со ссылками на нормативные документы, пожалуйста. Ибо на самом деле "не важно". - SciFi(22.09.2014 23:52)
- как раз именно это и важно. - Vit(22.09.2014 23:46)
- Это не важно. Если i будет volatile, ничего не изменится. - SciFi(22.09.2014 17:56)
- i здесь не volatile. - Vit(22.09.2014 17:54)
- ложь:) компиляторостроителю неизвестно, что будет лежать по неизвестному на момент компиляции адресу, потому он не сможет в регистр загнать константу. насчет выбросить присваивание - отдельный балет - Vit(22.09.2014 14:20)
- Неправда. Или у нас разная "логика" :-) - SciFi(22.09.2014 14:09)
- при xxx = *(arr+i), где i volatile, нелогично - Vit(22.09.2014 14:05)
- Я про чтение. Запись - в обработчике прерывания. Чтение - где-то в другом месте программы. Вот там кэширование вполне возможно. Логично? - SciFi(22.09.2014 14:01)
- Ну не знаю... Apтём(315 знак., 22.09.2014 13:08)
- Да не важно это всё. Если переменная (или массив) изменяется в прерывании, то она должна быть volatile. Точка. Порассуждать, каким именно образом это может сыграть на практике можно, конечно, но это другая тема. - SciFi(22.09.2014 13:44)
- А если переменная используется только в прерывании? Смысл её делать volatile? - Apтём(22.09.2014 13:48)
- Нет смысла, конечно. Но мы же уже преодолели младший школьный возраст, поэтому такие оговорки можно не рассматривать, правда? :-) - SciFi(22.09.2014 13:50)
- Ок...Не будем...:) - Apтём(22.09.2014 13:52)
- Нет смысла, конечно. Но мы же уже преодолели младший школьный возраст, поэтому такие оговорки можно не рассматривать, правда? :-) - SciFi(22.09.2014 13:50)
- А если переменная используется только в прерывании? Смысл её делать volatile? - Apтём(22.09.2014 13:48)
- Да не важно это всё. Если переменная (или массив) изменяется в прерывании, то она должна быть volatile. Точка. Порассуждать, каким именно образом это может сыграть на практике можно, конечно, но это другая тема. - SciFi(22.09.2014 13:44)
- перепутаем пальцы:) каким образом запись по неизвестному на момент компиляции адресу можно заменить записью по известному адресу? - Vit(22.09.2014 13:58)