Pergunta

Eu tenho procurado uma boa explicação, mas não consegue encontrar um.

Eu poderia tentar escrever um para mim, mas eu preferiria se alguém com melhor Inglês poderia me ajudar a explicar isso por Zan Lynx no comentário aqui .

... e parece que deveria haver um lugar bom explicação, por que não aqui?

Foi útil?

Solução

Quando uma biblioteca gere algumas estruturas de dados em nome de um programa (por exemplo, janelas em uma aplicação gráfica são gerenciados pelo sistema operacional), que normalmente mantém o conteúdo dessas estruturas privadas. No entanto, é geralmente útil para o programa para manter alguns dados específicos adicional para uso do programa dessas estruturas. Portanto, uma biblioteca, muitas vezes, fornecer acesso a um campo (muitas vezes chamado dados do usuário ), que armazena com cada estrutura.

Um uso comum do campo de dados do usuário por um programa é alocar parte da memória cada vez que o programa solicita a biblioteca para criar uma estrutura, e para armazenar o ponteiro para que a memória no campo de dados do usuário fornecido pela biblioteca, portanto, o termo userdata ponteiro .

Outras dicas

sqlite3_exec () - ele chama um callback (terceiro parâmetro) para cada linha recuperada e passa um ponteiro que você fornecer (quarto parâmetro) para este retorno. Isso pode ser um ponteiro para qualquer objeto que você deseja - você tem que lançá-lo adequadamente antes que você possa acessar o objeto pontiagudo. Este objeto é chamado um objeto userdata e um ponteiro para ele é chamado um ponteiro userdata.

Em caso de sqlite3_exec (), você pode passar um ponteiro para um recipiente que é armazenar todas as linhas da tabela recuperados após a conclusão do pedido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top