2009-03-02 18 views
3

私は良い説明を探しましたが、見つけられませんでした。「ユーザーデータポインタ」の定義は何ですか?

私は1つを自分で書いてみることができますが、より良い英語と誰かが私がコメントhereに斬Lynxのためにこれを説明するのに役立つことができれば、私は好みます。

...どこかに良い説明があるように思えますが、なぜここにいませんか?

答えて

3

ライブラリは、プログラムに代わっていくつかのデータ構造を管理する場合(例えば、GUIアプリケーションのウィンドウはOSによって管理されます)、通常はそれらの構造の内容を非公開にします。しかし、プログラムがこれらの構造の使用に特有のいくつかの追加のデータを維持することは、通常は有用である。したがって、ライブラリは、多くの場合、各構造とともに格納されるフィールド(多くの場合ユーザデータと呼ばれる)へのアクセスを提供します。

プログラムによるユーザデータフィールドの一般的な使用は、プログラムがライブラリを構造体の作成を要求するたびにメモリを割り当て、ライブラリが提供するユーザデータフィールドにそのメモリへのポインタを格納することです。従って、用語ユーザデータポインタ

3

sqlite3_exec()を参照してください - 検索された行ごとにコールバック(3番目のパラメータ)を呼び出し、指定したポインタ(4番目のパラメータ)をこのコールバックに渡します。これは、あなたが望むどんなオブジェクトへのポインタでもあります - あなたは、それを適切にキャストして先のオブジェクトにアクセスする必要があります。このオブジェクトはユーザデータオブジェクトと呼ばれ、そのポインタをユーザデータポインタと呼びます。

sqlite3_exec()の場合、要求が完了したときに取得したすべてのテーブル行を格納するコンテナにポインタを渡すことができます。

関連する問題