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

ナビゲーションに移動 検索に移動
英語版を見ると、該当部にはAlgol 68とある
(英語版を見ると、該当部にはAlgol 68とある)
'''void'''(ボイド)は、[[プログラミング言語]]において、「何もない」といった意味の型などの[[識別子]]や[[予約語]]などに使われる名前である。
 
[[ALGOL]]68や、[[C言語]]とそこから派生した言語には、'''void型'''と呼ばれる[[データ型|型]]があり、呼び出し側に返り値を戻さない[[サブルーチン|関数]]を書く場合に用いられる。そのような関数は、何かしらの処理、あるいは引数を出力するといった、[[副作用 (プログラム)|副作用]]のために呼び出されるのが通例である。値を返さない手続きは関数ではなく[[プロシージャ]]である、という言語([[Visual Basic]]や[[Pascal]])もある。似たものとしてnil([[Null]])や{{日本語版にない記事リンク|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>)。

案内メニュー