Как делает аппаратное сообщение в three-past-the-end указателе, происходят, даже если указатель никогда не разыменовывается?

Если вы можете придумать только один способ сделать это, не делайте этого.

Будь то макет интерфейса, поток задач или блок кода, просто остановите . Сделайте что-нибудь, чтобы собрать больше идей, например, спросите других людей, как они это сделают, и не возвращайтесь к реализации, пока у вас не появятся как минимум три совершенно разные идеи и хотя бы один кризис доверия.

Как правило, когда я думаю, что что-то может быть сделано только одним способом, или думаю, что только один метод имеет какую-то ценность, это потому, что я не продумал факторы, которые должны влиять на дизайн достаточно тщательно. Если бы я имел, некоторые из них явно находились бы в конфликте, приводя к беспорядку и, таким образом, действительному решению, а не по умолчанию.

Надежный программист не делает вас надежным дизайнером интерфейса

И следование всем рекомендациям по интерфейсам в мире только поможет. Если это даже по-человечески возможно ... Кажется, есть своеобразная склонность делать вещи "милыми" и "умными".

7
задан Thomas L Holaday 29 June 2009 в 12:19
поделиться

2 ответа

Операции с указателями зависят от реализации.

Может случиться так, что на некоторых платформах только определенные регистры разрешены для хранения значений указателей (только определенные регистры могут служить индексными регистрами), и значение, записанное в такой регистр непривилегированным программным кодом, немедленно проверяется на действительный адрес. В этом случае, если значение указателя соответствует адресу, отсутствующему в адресном пространстве программы, обязательно произойдет аппаратная ловушка.

В этом случае любой код, не оптимизированный компилятором, присваивает новое значение указателю. потенциально может вызвать ловушку.

5
ответ дан 7 December 2019 в 05:27
поделиться

Вы могли бы погуглить "умозрительное чтение". Как только адрес сформирован, для архитектуры кеша может быть разумным занести соответствующую строку данных в кеш. Обычно это должно быть безвредно, но если вы значительно выйдете за границы (например, перейдете на следующую страницу), это может оказаться неверным.

3
ответ дан 7 December 2019 в 05:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: