翻訳と辞書
Words near each other
・ 共産趣味
・ 共産趣味者
・ 共産軍
・ 共産陣営
・ 共産青年同盟
・ 共産革命
・ 共用
・ 共用カード
・ 共用カード (郵便貯金)
・ 共用サーバー
共用体
・ 共用施設 (マンション)
・ 共用緑地
・ 共用部分
・ 共白髪
・ 共益
・ 共益権
・ 共益費
・ 共直線性
・ 共石


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

共用体 : ミニ英和和英辞書
共用体[きょうようたい]
=====================================
〔語彙分解〕的な部分一致の検索結果は以下の通りです。

: [ども]
  1. (suf) indicates plural - humble referring to oneself, disdainful referring to others 
共用 : [きょうよう]
  1. (n,vs) common use 2. communal use 3. sharing 
: [よう]
  1. (n,n-suf) task 2. business 3. use 

共用体 : ウィキペディア日本語版
共用体[きょうようたい]

共用体(きょうようたい、union)は、プログラミング言語におけるデータ型の一つで、同じメモリ領域を複数の型が共有する構造である。
例として、ある入力が数字の場合は数値として、そうでない場合は文字列のまま保持したいという場合を考える。この場合、数値用と文字列用の領域をそれぞれ用意するのが一つの解法だが、入力は数値か文字列のどちらか一方なので、片方しか使われず無駄が出る。そこで代わりに、格納用の領域を一つだけ用意して、これを数値である、文字列であると場合により解釈し分けることで領域の無駄が抑えられる。この「格納用の領域」こそが共用体である。
共用体から意味のある値を取り出すためには、中身のデータそのものに加えて「今、何の型のデータが入っているか」という情報(タグという)が必要となる。タグを付加情報として持ち、常に正しい型でデータを得られるように設計された共用体を特にタグ付き共用体という。
一方で、タグの付いていない共用体の場合は、正しい型でアクセスすることは利用者側の責任である。利用者は何らかの方法で共用体に今何が入っているかを管理しなければならない。誤った型でアクセスした場合、例えば数値の入った共用体から文字列を取り出そうとして得られた値は大抵は無意味か不正なものとなる。ただし、敢えて格納時と異なる型で値にアクセスすることで、一つのバイト列に対して複数の型で解釈するテクニックもある。例としては、ある整数型の値が格納された共用体に、より小さな整数型が格納されているものとしてアクセスすることで、元々の長い整数の上位(下位)バイト部分を取り出すことができる。このテクニックは実際にはエンディアンなど環境に強く依存し、移植性は低い。
==C==

C言語は(タグなし)共用体をサポートしている。Cの共用体は全てのメンバのオフセットが0である(つまり先頭バイトから始まる)構造体であり、宣言に予約語structではなく共用体を意味するunionを使うことを除いて構造体と全く同じ構文で宣言・定義される。またメンバへのアクセスも構造体と同様に.演算子と->演算子で行える。共用体全体のサイズは少なくともメンバの中で最大のものを格納できる大きさに決められる(後ろにパディングされる可能性がある)。
共用体の初期化は、先頭で宣言したメンバの型で行わなければならない。
構造体を含む共用体については配置について特別な規定があり、共用体のメンバとして、先頭のメンバの型が同じである構造体を複数持つ場合は、それらの構造体の先頭メンバに限り、正確に重なり合うことが保証される。つまり、先頭メンバは別の構造体の先頭メンバの名前でも正しく参照できる。この仕様は似たような構成の構造体を集めた共用体で、先頭メンバをタグ情報として使うために役立つ。

#include
#include

union U /
* 共用体Uを定義
*/
;
union Hoge /
* 共用体Hogeを定義:構造体の共用体
*/
; /
* FooとBarの先頭メンバは同じ型(int)
*/

int main(void)/
* 共用体を使ってみる
*/



抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「共用体」の詳細全文を読む




スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.