我一直在寻找一个好的解释,但找不到。
我可以尝试自己写一个,但我更希望英语更好的人可以帮助我在评论 here 中为 Zan Lynx 解释这一点。 .
...似乎应该在某个地方有一个很好的解释,为什么不在这里?
最佳答案
当库代表程序管理某些数据结构时(例如 GUI 应用程序中的窗口由操作系统管理),它通常会将这些结构的内容保持私有(private)。然而,对于程序来说,维护一些特定于程序对这些结构的使用的附加数据通常很有用。因此,库通常会提供对它与每个结构一起存储的字段(通常称为用户数据)的访问。
程序对用户数据字段的常见用途是每次程序请求库创建结构时分配一些内存,并将指向该内存的指针存储在库提供的用户数据字段中,因此术语用户数据指针。
关于language-agnostic - "userdata pointer"的正确定义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602826/