什么是“userdata指针”的好定义?

我寻找了一个很好的解释,但找不到一个。

我可以尝试自己写一篇,但如果有更好的英语的人可以帮我解释一下Zan Lynx在这里的评论,我会更喜欢。

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


当一个库代表一个程序管理某些数据结构时(例如,GUI应用程序中的窗口由OS管理),它通常保持这些结构的内容是私有的。 但是,对于程序来说,维护某些特定于程序对这些结构的使用的附加数据通常很有用。 因此,图书馆通常会提供对每个结构存储的字段(通常称为用户数据)的访问。

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


查看sqlite3_exec() - 它为每个检索到的行调用回调函数(第三个参数),并将您提供的指针(第四个参数)传递给此回调函数。 这可以是一个指向你希望的任何对象的指针 - 在访问指向的对象之前,你必须适当地投射它。 这个对象被称为userdata对象,并且它的指针被称为userdata指针。

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

链接地址: http://www.djcxy.com/p/73577.html

上一篇: What is a good definition of a "userdata pointer"?

下一篇: Hidden features of C