重複の可能性:
C ++なぜparamsにvoidを入れるのですか?
これらの2つの宣言の違いは何ですか?どちらがより一般的に使用されますか?
void function1();
と
void function2( void );
重複の可能性:
C ++なぜparamsにvoidを入れるのですか?
これらの2つの宣言の違いは何ですか?どちらがより一般的に使用されますか?
void function1();
と
void function2( void );
C ++には違いはなく、0個のパラメーターを表すことが明確に定義されています。
ただし、Cで1つ作成されます。(void)
パラメータのない平均を持つ関数であるのに対し()
、任意の数のパラメータを持つ平均。
http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fparam_decl.htmから
関数定義の空の引数リストは、引数をとらない関数を示します。関数宣言の空の引数リストは、関数が任意の数またはタイプの引数を取ることができることを示します。したがって、
int f() { ... }
関数fが引数を取らないことを示します。でも、
int f();
パラメータの数とタイプが不明であることを示しているだけです。関数が引数を取らないことを明示的に示すには、キーワードを使用して関数を定義する必要があります
void
。
に違いはありませんC++
。
2番目の宣言は、関数がパラメーターを受け取らないことを明示的に示しています。
2番目はでより一般的に使用されC
ます。1番目はでより一般的に使用されC++
ます。
C
次の理由
による違いがあり(void)
ます。で、関数にパラメーターがない()
ことを指定しているのに対し、パラメーターが指定されていない(引数の数が不明)ことを指定している。
ただし、それが関数宣言ではなく関数定義である場合でも、C
それは。と同じ(void)
です。
違いはありません。最初のものはより一般的で、明確で簡潔だと思います。
C ++では違いはなく、2番目の形式はC互換性のためにのみ保持されます。C ++では、最初の形式が推奨されます。
Cでは、それらは異なることを意味します。最初の形式は不明な数の引数を取る関数を指定し、2番目の形式はゼロの引数を取る関数です。
一部の非常に古い(非標準の)Cコンパイラは、最初のコンパイラについて文句を言う可能性があるため、2番目のコンパイラはより移植性が高いはずです。
それを除けば、違いはありません。
最初のものは、ユーザーコードでより一般的に使用されます。これは、非常に短いためです。
実際には違いはありません。メソッドユーザーに渡すパラメーターがない場合はvoidまたは空の括弧。渡されたパラメーターからだけであることに注意してください。メソッドに戻り値がない場合は、voidキーワードを使用する必要があります。最初のパラメーターはC#でより一般的