C言語、C++
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/02/25 13:56 UTC 版)
「void (コンピュータ)」の記事における「C言語、C++」の解説
返り値がvoid型の関数では、引数なしのreturn文で呼び出し元に戻る(あるいは、プログラムの終了まで戻らないか、longjmpのように別の場所に飛ぶ)。また、関数プロトタイプにvoidを単独で書いて、「引数がない」ことを明示する用途にも使われる。void(空虚)という名前に反して、Unit型のような使われ方をしている。(型理論的には、Unit型には () という唯一の値が存在し(Unit型の値は1個)、Void型の値は存在しない(Void型の値は0個))。 初期のC言語では、返り値が明示されていない関数がint型として扱われ、また引数のない関数ではただ空のカッコを書いていた。そして、指す先の型が決まらないポインタは整数、あるいはcharへのポインタを代用していた。この仕様だったコンパイラでは、関数の返り値を使わないことで警告が出ていたので、それをvoid型にキャストすることで警告を出さないようなコードが書かれることもあった。ビャーネ・ストロヴストルップが1979年~80年頃にC++の開発を始めた時点では、void型やそのポインタはAT&T系のコンパイラがサポートしていた方言であった。 型が明示されないとint、という仕様は、C90では規格化された。 関数プロトタイプでvoidを明示することと、何も書かないのとでは、以下のようにC言語とC++で意味合いに違いが出てくる。 CC++備考void f(void); void f(); C++ではこの記法が推奨されている void f(void); void f(void); void f(); void f(……); 可変長引数 ただしC言語でも、C99では上記のvoid f();のような、何も書かないことで可変長の引数を意味する記法が非推奨となっている。
※この「C言語、C++」の解説は、「void (コンピュータ)」の解説の一部です。
「C言語、C++」を含む「void (コンピュータ)」の記事については、「void (コンピュータ)」の概要を参照ください。
- C言語、Cのページへのリンク