このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン | |||
| 共用体の活用 [2011/12/06 22:03] – member | 共用体の活用 [2011/12/11 00:57] (現在) – member | ||
|---|---|---|---|
| 行 15: | 行 15: | ||
| 上に書いたのが共用体の使用例です。文法は構造体でstructだったところをunionにするだけです。ちなみに値の参照の仕方なども構造体とまったく同じように | 上に書いたのが共用体の使用例です。文法は構造体でstructだったところをunionにするだけです。ちなみに値の参照の仕方なども構造体とまったく同じように | ||
| ”.”で区切ると使えます。この使用例ではblockとrot_directionというものを共用体として管理しています。blockは直進のブロック数、rot_directionは回転方向を表す変数です。なぜこれらを共用体にしたかというと、曲がることと、直進することは同時にできないからです。じゃあ、ブロック数と回転方向を共用体なんかにしないで別々に管理すればいいじゃないかと思うかもしれないですが、この二つのデータはどちらも経路に関するデータで、まとめておきたいわけです。まとめるだけなら、構造体を使えばいいわけですが我々がつかっているマイコンというものはパソコンのように莫大なメモリを持っておらず、メモリをケチりながら使わなければならないのです。だから、構造体にしてデータを管理するときに中の変数を同時に使う可能性がないときには共用体にすると良いわけです。 | ”.”で区切ると使えます。この使用例ではblockとrot_directionというものを共用体として管理しています。blockは直進のブロック数、rot_directionは回転方向を表す変数です。なぜこれらを共用体にしたかというと、曲がることと、直進することは同時にできないからです。じゃあ、ブロック数と回転方向を共用体なんかにしないで別々に管理すればいいじゃないかと思うかもしれないですが、この二つのデータはどちらも経路に関するデータで、まとめておきたいわけです。まとめるだけなら、構造体を使えばいいわけですが我々がつかっているマイコンというものはパソコンのように莫大なメモリを持っておらず、メモリをケチりながら使わなければならないのです。だから、構造体にしてデータを管理するときに中の変数を同時に使う可能性がないときには共用体にすると良いわけです。 | ||
| - | | ||
| | | ||