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

編集の要約なし
m (ボット: 言語間リンク 6 件をウィキデータ上の (d:Q513000 に転記))
'''voidVoid'''(ボイド)は、[[プログラミング言語]]において、「何もない」といった意味の型などの[[識別子]]や[[予約語]]などに使われる名前である。プリミティブとしてキーワードないし[[予約語]]であることも多い
{{小文字}}
'''void'''(ボイド)は、[[プログラミング言語]]において、「何もない」といった意味の型などの[[識別子]]や[[予約語]]などに使われる名前である。
 
[[ALGOL]]68や[[C言語]]とそこから派生した言語になどでは、'''有意な値を返さない[[サブルーチン]]について、関数としての形式上void型'''呼ばれしてい。この場合は意味的には([[データ型|理論]]的には)本来は{{日本語版にない記事リンク|Unit型|en|Unit type}}でり、る。呼び出し側に返り値を戻さない[[サブルーチン|関数]]を書く場合に用いられる。そのような関数は、何かしらの処理、あるいは引数を出力するといった、[[副作用 (プログラム)|副作用]]のために呼び出されるのが通例である。値を返さない手続きは関数ではなく[[プロシージャ]]である、という言語([[Visual Basic]]や[[Pascal]])もある。似たも(「返り値を戻さない」ではなく、「呼び出てnil([[Null]])や{{日本語版戻らない記事リンク|Unit型|en|Unit type}}が」のでるが、れば理論的にもvoid型は、そのような値は存在しないいう点が、それらと違う。言える)
 
似たものとしてnil([[Null]])や{{日本語版にない記事リンク|Unit型|en|Unit type}}があるが、(本来の)Void型はその型の値は存在しないという点が、NullやUnitと異なる。
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>)。
 
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演算子は、オペランドの式を評価してその値を得る計算をおこなうが、その値は捨てられ、値を返さない。
 
また、[[JavaScript]]など、言語によっては、'''void演算子'''が存在する。JavaScriptのvoid演算子は、オペランドの式を評価してその値を得る計算をおこなうが、その値は捨てられ、値を返さない。C言語における、値を捨てることを明示するためのvoid型へのキャスト(たとえば、<code>(void)printf("Hello");</code> のように書く)に似ている
 
== C言語、C++ ==