Базовые указатели

Базовые указатели

Как показали предыдущие примеры, во многих случаях метод отображения файлов является весьма удобным. Однако предположим, что в программе создается структура данных с указателями, ссылающимися на область отображения файла, и ожидается, что впоследствии к этому файлу будет производиться обращение. В этом случае указатели оказываются установленными относительно виртуального адреса, возвращенного функцией MapViewOfFile, и не будут иметь смысла при использовании представления объекта отображения в следующий раз. Решение состоит в том, чтобы использовать базовые указатели (based pointers), являющиеся фактически смещениями относительно другого указателя. Соответствующий синтаксис Microsoft С, доступный в Visual C++ и некоторых других системах, выглядит следующим образом:

тип _based (база) объявление

Ниже показаны два примера таких указателей.

LPTSTR pInFile = NULL;

DWORD _based (pInFile) *pSize;

TCHAR _based (pInFile) *pIn;

Обратите внимание на тот факт, что синтаксис требует использования символа *, хотя такая практика противоречит соглашениям Windows.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

7.2.4 Указатели

Из книги Справочное руководство по C++ автора Страустрап Бьярн

7.2.4 Указатели Если производный класс derived имеет открытый базовый класс base, то указатель на derived можно присваивать перменной типа указатель на base не используя явное преобразовние типа. Обратное преобразование, указателя на base в указтель на derived, должно быть явным.


R.8.2.1 Указатели

Из книги Adobe Photoshop CS3 автора Завгородний Владимир

R.8.2.1 Указатели В описании T D, в котором D имеет вид* список-спецификаций-cv opt D1тип описываемого идентификатора есть"… список-спецификаций-cv указатель на T". Конструкция список-спецификаций-cv относится к указателю, а не к указуемому объекту.Например, в описанияхconst ci = 10, *pc =


Базовые настройки

Из книги Идиомы и стили С++ автора Makhmutov Albert

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


Шаг 2 - Умные указатели.

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Шаг 2 - Умные указатели. Сначала договоримся о терминах. Перегрузка функций (overloading) - многократное определение функции с разным набором аргументов (сигнатурой). В сигнатуру включается модификатор const, но не включается возвращаемое значение. Перегрузка операторов (overloading) -


Базовые типы и указатели

Из книги Яндекс для всех автора Абрамзон М. Г.

Базовые типы и указатели Синтаксис:=<выражение>Значение выражения присваивается переменной. При необходимости выполняются правила преобразования типов.Примеры:int х = 10, у = 20; /* пример 1 */register int *рх = 0; /* пример 2 */int с = (3*1024); /* пример 3 */int *b = &x; /* пример 4 */В первом примере


1.3.1. Базовые возможности

Из книги AutoCAD 2008 для студента: популярный самоучитель автора Соколова Татьяна Юрьевна

1.3.1. Базовые возможности Искать в Яндексе очень и очень просто. Вы задаете вопрос в том виде, в каком могли бы задать его приятелю, учителю, врачу, ученому. Единственное пожелание — вопрос не должен быть очень длинным и содержать множество слов. Оптимальное количество слов


Базовые размеры

Из книги Язык Си - руководство для начинающих автора Прата Стивен

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


12. Массивы и указатели

Из книги C++ для начинающих автора Липпман Стенли

12. Массивы и указатели МАССИВЫ. МНОГОМЕРНЫЕ МАССИВЫ. ИНИЦИАЛИЗАЦИЯ МАССИВОВ. УКАЗАТЕЛИ И ОПЕРАЦИИ НАД УКАЗАТЕЛЯМИ. СВЯЗЬ МЕЖДУ МАССИВОМ И УКАЗАТЕЛЕМ. ОПЕРАЦИИ  & * (унарные)Между массивами и указателями существует очень тесная связь, поэтому обычно их рассматривают


УКАЗАТЕЛИ МАССИВОВ

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

УКАЗАТЕЛИ МАССИВОВ      Как было сказано в гл. 9, указатели позволяют нам работать с символическими адресами. Поскольку в реализуемых аппаратно командах вычислительной машины интенсивно используются адреса, указатели предоставляют возможность применять адреса


Указатели и строки

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Указатели и строки      Возможно, вы заметили периодическое упоминание указателей в нашем рассказе о строках. Большинство операции языка Си, имеющих дело со строками, работает с указателями. Например, рассморим приведенную ниже бесполезную, но поучительную программу /*


УКАЗАТЕЛИ НА СТРУКТУРЫ

Из книги автора

УКАЗАТЕЛИ НА СТРУКТУРЫ      Любители указателей будут рады узнать, что указатели можно использовать и для структур. Это хорошо по крайней мере по трем причинам. Во-первых, точно так же как указатели на массивы, они легче в использовании (скажем, в задаче сортировки), чем


3.3. Указатели

Из книги автора

3.3. Указатели Указатели и динамическое выделение памяти были вкратце представлены в разделе 2.2. Указатель – это объект, содержащий адрес другого объекта и позволяющий косвенно манипулировать этим объектом. Обычно указатели используются для работы с динамически


7.9. Указатели на функции

Из книги автора

7.9. Указатели на функции Предположим, что нам нужно написать функцию сортировки, вызов которой выглядит так:sort( start, end, compare );где start и end являются указателями на элементы массива строк. Функция sort() сортирует элементы между start и end, а аргумент compare задает операцию сравнения


Указатели

Из книги автора

Указатели Указатель в С++ — это переменная, содержащая не сам объект, а адрес памяти, где располагается объект. Java и C# имеют аналогичную концепцию «ссылки» при другом синтаксисе. Мы начнем с рассмотрения придуманного нами примера, иллюстрирующего применение указателей:01


Указатели

Из книги автора

Указатели Указатель - это ячейка памяти, хранящая адрес. В PascalABC.NET указатели делятся на типизированные (содержат адрес ячейки памяти данного типа) и бестиповые (содержат адрес оперативной памяти, не связанный с данными какого-либо определенного типа).Тип указателя на