「Void (コンピュータ)」の版間の差分

m
lk修正
(en:void type 09:29, 15 December 2011‎ (UTC) の翻訳を元に再構成+演算子について加筆)
 
m (lk修正)
[[ALGOL]]や、[[C言語]]とそこから派生した言語には、'''void型'''と呼ばれる[[データ型|型]]があり、呼び出し側に返り値を戻さない[[サブルーチン|関数]]を書く場合に用いられる。そのような関数は、何かしらの処理、あるいは引数を出力するといった、[[副作用 (プログラム)|副作用]]のために呼び出されるのが通例である。「値を返さない処理」を作成するために、void型を使うのではなく、別な命令により書く言語([[Visual Basic]]や[[Pascal]])もある。[[関数型言語]]で用いられる{{日本語版にない記事リンク|Unit型|en|Unit type}}とも似ているが、void型の値は存在しないという意味合いで使える用途に違いもある。
 
C言語や[[C++]]では'''void型へのポインタ'''(<code>void *</code>として宣言される)があるが、これは上で述べたvoid型と直接関連するものではなく、「void型へのポインタ」は、「不特定の」型を指す[[ポインタ (プログラミング)|ポインタ]]となっている。つまり、この文脈ではvoidが汎用型として扱われている。プログラムでどんな型のデータもvoid型のポインタから指すことができ、逆に元のデータを参照することもできるため、[[ポリモーフィズム|ポリモーフィック]]な関数を書く際に有用である(ただし、関数はデータとして扱えないため、関数ポインタについては違ってくる部分がある<ref>http://www.safercode.com/blog/2008/11/25/generic-function-pointers-in-c-and-void.html</ref>)。
 
また、[[JavaScript]]など、言語によっては、'''void演算子'''が存在する。void演算では、オペランドは評価されるものの、値は返さない。