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

削除された内容 追加された内容
tmpl: リンク切れの旨追加・代替リンクなど求む/構文強調化
MoS/Tmpl: Webページの出典/重複する記述の除去/表の整理
20行目:
関数プロトタイプでvoidを明示することと、何も書かないのとでは、以下のようにC言語とC++で意味合いに違いが出てくる<ref>{{cite book | last = Stroustrup | first = Bjarne | title = Programming: Principles and Practice Using C++| publisher = Addison-Wesley | location = Boston | year = 2009 | isbn = 0321543726 | page=996}}</ref>。
 
{{Table2
{| class="wikitable" border="1"
| 列 = 3
|-
| th1 = C | th2 = C++ | th3 = 備考
! C++
| {{code|lang=c|void f(void);}} | {{code|lang=cpp|void f();}} | C++ではこの記法が推奨されている
! C言語
| {{code|lang=c|void f(void);}} | {{code|lang=cpp|void f(void);}} |
|-
| {{code|lang=c|void f();}} | {{code|lang=cpp|void f(……);}} | 可変長引数
| <code>void f(); //推奨されている書き方</code>
|}}
| <code>void f(void);</code>
|-
| <code>void f(void);</code>
| <code>void f(void);</code>
|-
| <code>void f(...); //可変長引数</code>
| <code>void f(); /* 可変長引数 */</code>
|}
 
ただしC言語でも、[[C99]]では上記の{{code|lang=c|void f();}}<code>void f()</code>のような、何も書かないことで可変長の引数を意味する記法が非推奨となっている<ref>Bjarne Stroustrup, ''[http://www.ddj.com/cpp/184401562 C and C++: Case Studies in Compatibility. Reconcilable differences? You decide]'', [[Dr. Dobb's]], September 01, 2002; [http://www.research.att.com/~bs/examples_short.pdf print version]</ref>。
{{Cite web
| url = http://www.drdobbs.com/c-and-c-case-studies-in-compatibility/184401562
| title = C and C++: Case Studies in Compatibility
| accessdate = 2018-10-18
| name = Bjarne Stroustrup
| date = 2002-09-01
| website = Dr. Dobb's
| publisher = UBM
}}
</ref>。
 
== void演算子ECMAScript ==
[[ECMAScript]]では、voidはキーワードであり([[予約語]]を参照)、単項式の前に付けて単項式を形成する前置[[演算子]]のひとつである<ref>ECMA-262
{{Cite 5web
| url = https://tc39.1github.io/ecma262/#sec-void-operator
| Editiontitle §11= 12.45.24 The void Operator
| accessdate = 2018-10-18
| year = 2018
| website = ECMAScript® 2019 Language Specification
| publisher = Ecma International
}}
</ref>。構文規則上は{{code|lang=javascript|void 単項式}}という形のため{{code|lang=javascript|void(式)}}という形で用いられることが多い。式を評価し、その値を取得するがその値を特にどうともせず、常に「undefined」を返す。もっぱらHTML内で、{{code|lang=html|<a href{{=}}"javascript:void(0)">foo</a>}}のように記述して、リンクとしての機能を働かせないために用いられる。
 
== 脚注 ==