Расширение Shell для диска как GDrive?

Почему мы можем сказать, что bar не нарушает правило строгого алиасинга?

Если код, вызывающий bar, не нарушает строгое алиасинг, bar тоже не будет нарушать строгое алиасинг. .

Позвольте мне привести пример.

Предположим, мы называем bar следующим образом:

int x;
long y;
bar(&x, &y);

Строгое алиасирование требует, чтобы два указателя разных типов не ссылались на одну и ту же память. & amp; x и & amp; y - это разные типы, и они относятся к разной памяти. Это не нарушает строгий псевдоним.

С другой стороны, скажем, мы называем это так:

long y;
bar((int *) &y, &y);

Теперь мы нарушили строгий псевдоним. Тем не менее, нарушение является ошибкой вызывающего абонента.

5
задан John Saunders 3 August 2009 в 16:02
поделиться

1 ответ

Существует статья с двумя частями о CodeProject, который может содержать информацию для реализации такого расширения проводника: часть 1, часть 2.

4
ответ дан 15 December 2019 в 01:13
поделиться
Другие вопросы по тегам:

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