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

 
== C言語、C++ ==
返り値がvoid型の関数では、引数なしの[[return文]]<!--を実行するか、abort、exitなどの関数を呼び出すこと--><!-- ← プログラムごと終了するのであって、関数の終了ではない -->で呼び出し元に戻る(あるいは、プログラムの終了まで戻らないか、longjmpのように別の場所に飛ぶ)。<!--C の最新規格C11では、関数が処理の終わりまで達してしまった場合の動作は未定義である。--><!-- ← _Noreturn と勘違いしてないか? -->また、[[関数プロトタイプ]]にvoidを単独で書いて、「[[引数]]がない」ことを明示する用途にも使われる。void(空虚)という名前に反して、void型は空集合を意図したunitUnit型のような使われ方をしている。ただ(型理論的には、Unit型には () という唯一の値が存在(Unit型の値は1個)<code>void</code>Void型の値は存在しない(Void型の値は0個))
 
初期のC言語では、返り値が明示されていない関数が<code>int</code>型として扱われ、また引数のない関数ではただ空のカッコを書いていた。そして、指す先の型が決まらないポインタは整数、あるいは<code>char</code>へのポインタを代用していた。この仕様だった[[コンパイラ]]では、関数の返り値を使わないことで警告が出ていたので、それをvoid型に[[型変換|キャスト]]することで警告を出さないようなコードが書かれることもあった。[[ビャーネ・ストロヴストルップ]]が1979年~80年頃に[[C++]]の開発を始めた時点では、void型やそのポインタは[[AT&T]]系のコンパイラがサポートしていた[[方言 (プログラミング言語)|方言]]であった<ref>http://cm.bell-labs.com/cm/cs/who/dmr/chist.html, "Standardisation."</ref>。