2009-03-02 69 views
3

我已經搜索了一個很好的解釋,但找不到一個。什麼是「userdata指針」的好定義?

我可以嘗試寫一個自己,但我寧願如果有人有更好的英語能幫助我在評論here解釋爲咱山貓。

...似乎應該有一個很好的解釋,爲什麼不在這裏?

回答

3

當一個庫代表一個程序管理某些數據結構(例如GUI應用程序中的窗口由OS管理)時,它通常會保持這些結構的內容是私有的。但是,對於程序來說,維護某些特定於程序對這些結構的使用的附加數據通常很有用。因此,圖書館通常會提供對每個結構存儲的字段(通常稱爲用戶數據)的訪問。

程序對用戶數據字段的常見用法是每次程序請求庫創建結構時分配一些內存,並將指向該內存的指針存儲在庫提供的用戶數據字段中,因此術語用戶數據指針

3

sqlite3_exec() - 它爲每個檢索到的行調用回調函數(第三個參數),並將您提供的指針(第四個參數)傳遞給此回調函數。這可以是一個指向你希望的任何對象的指針 - 在訪問指向的對象之前,你必須適當地投射它。這個對象被稱爲userdata對象,並且它的指針被稱爲userdata指針。

在sqlite3_exec()的情況下,您可以傳遞一個指向容器的指針,該容器將在請求完成時存儲所有檢索到的錶行。