4

我已经搜索了一个很好的解释,但找不到。

我可以尝试自己写一个,但如果有更好英语的人可以帮助我在此处的评论中为 Zan Lynx 解释这一点,我会更喜欢。

...似乎应该在某个地方有一个很好的解释,为什么不在这里?

4

2 回答 2

3

查看sqlite3_exec() - 它为每个检索到的行调用一个回调(第三个参数)并将您提供的指针(第四个参数)传递给这个回调。这可以是指向您想要的任何对象的指针——您必须在访问指向的对象之前适当地转换它。该对象称为 userdata 对象,指向它的指针称为 userdata 指针。

在 sqlite3_exec() 的情况下,您可以将指针传递给一个容器,该容器将在请求完成时存储所有检索到的表行。

于 2009-03-02T16:02:47.460 回答
3

当库代表程序管理某些数据结构时(例如,GUI 应用程序中的窗口由操作系统管理),它通常将这些结构的内容保密。但是,程序维护一些特定于程序使用这些结构的附加数据通常很有用。因此,库通常会提供对与每个结构一起存储的字段(通常称为用户数据)的访问权限。

程序对用户数据字段的常见用途是每次程序请求库创建结构时分配一些内存,并将指向该内存的指针存储在库提供的用户数据字段中,因此术语用户数据指针

于 2009-03-02T16:30:46.457 回答