Что такое хорошее определение «указателя пользовательских данных»? - PullRequest
4 голосов
/ 02 марта 2009

Я искал хорошее объяснение, но не могу его найти.

Я мог бы попытаться написать один сам, но я бы предпочел, чтобы кто-то с лучшим english мог бы помочь мне объяснить это для Zan Lynx в комментарии здесь .

... и кажется, что где-то должно быть хорошее объяснение, почему бы и нет?

Ответы [ 2 ]

3 голосов
/ 02 марта 2009

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

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

3 голосов
/ 02 марта 2009

Посмотрите на sqlite3_exec () - он вызывает обратный вызов (третий параметр) для каждой извлеченной строки и передает указанный вами указатель (четвертый параметр) в этот обратный вызов. Это может быть указатель на любой объект, который вы хотите - вы должны привести его соответствующим образом, прежде чем сможете получить доступ к указанному объекту. Этот объект называется объектом пользовательских данных, а указатель на него называется указателем пользовательских данных.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...