私は最近、地元の図書館でわずか 2 ドルで販売されていた、優れたデータ構造の本、" Data Structures Using C " (c) 1991 を見つけました。本のタイトルが示すように、この本は C プログラミング言語を使用したデータ構造をカバーしています。
時代遅れであることはわかっていましたが、他の場所では見られないような高度な C トピックが多数含まれていることを知って、この本を入手しました。
案の定、5 分以内に C について知らなかったことがわかりました。union
キーワードについて説明しているセクションに出くわし、それを使用したことがなく、使用するコードを見たことがないことに気付きました。面白いことを学べたことに感謝し、すぐにその本を買いました。
労働組合とは何かをよく知らない人のために、この本は良い比喩を使って説明しています。
ユニオンの概念を完全に理解するには、その実装を検討する必要があります。構造は、メモリ領域へのロード マップと見なすことができます。メモリの解釈方法を定義します。ユニオンは、メモリの同じ領域に対していくつかの異なるロード マップを提供します。どのロード マップが現在使用されているかを判断するのは、プログラマの責任です。実際には、コンパイラは共用体の最大メンバーを格納するのに十分なストレージを割り当てます。ただし、そのストレージをどのように解釈するかを決定するのはロード マップです。
ユニオンを使用する不自然な状況やハックを簡単に思いつくことができました。(しかし、不自然な状況やハックには興味がありません...)
Union を使用すると、Union を使用しない場合よりも**よりエレガントに**問題を解決する実装を使用したり、見たりしたことがありますか?
ユニオンを使用した方がユニオンを使用しないよりも優れている/簡単である理由の簡単な説明を含めると、ボーナスが追加されます。