“ユーザーデータポインター”の適切な定義は何ですか?

StackOverflow https://stackoverflow.com/questions/602826

質問

良い説明を検索しましたが、見つかりません。

私は自分で書いてみることもできますが、Zen Lynxのコメントこちら

...どこかに良い説明があるはずです、なぜここにいないのですか?

役に立ちましたか?

解決

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

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

他のヒント

sqlite3_exec()–をご覧ください。取得した行ごとにコールバック(3番目のパラメーター)を呼び出し、指定したポインター(4番目のパラメーター)をこのコールバックに渡します。これは、任意のオブジェクトへのポインタにすることができます–ポイントしたオブジェクトにアクセスするには、適切にキャストする必要があります。このオブジェクトはユーザーデータオブジェクトと呼ばれ、そのポインターはユーザーデータポインターと呼ばれます。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top