2

私は現在、カプセル化の標準的な手法として不透明なポインターを使用していますが、OpenGL API を見ると、id 番号を使用する方が良い選択である可能性があると思います。ベテランの C プログラマーからのアドバイスをお願いします (この言語を積極的に使用してから 2 年ほどしか経っていません)。

確認または修正したい私の最初の考えは次のとおりです。

ID 番号の考えられる利点:

  • ID番号を使用する場合、実装でオブジェクト/メモリプールを使用するのはかなり簡単です

  • ID 番号はシステム メモリにマップする必要はありません (GL の場合はグラフィックス メモリを参照できます)。

ID 番号の考えられる短所:

  • 実装が少し複雑になります

共有ライブラリを使用する状況を考慮した同様の質問があります: 不透明なオブジェクトに整数 ID またはポインターを使用する必要がありますか? 私の質問は共有ライブラリに関するものではなく、ユーザー コードから実装の詳細を隠す一般的なケースに関するものです。

MyObjectHandle を typedef して、ライブラリが ID 番号と不透明なポインターを切り替えることができると思います。

問題は 、不透明なポインターと C プログラミング言語を使用した ID 番号の長所と短所は何ですか?

4

0 に答える 0