4

重複の可能性:
C ++なぜparamsにvoidを入れるのですか?

これらの2つの宣言の違いは何ですか?どちらがより一般的に使用されますか?

void function1();

void function2( void );
4

6 に答える 6

7

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

于 2011-10-27T09:10:05.840 に答える
6

に違いはありませんC++
2番目の宣言は、関数がパラメーターを受け取らないことを明示的に示しています。

2番目はでより一般的に使用されCます。1番目はでより一般的に使用されC++ます。

C次の理由
による違いがあり(void)ます。で、関数にパラメーターがない()ことを指定しているのに対し、パラメーターが指定されていない(引数の数が不明)ことを指定している。

ただし、それが関数宣言ではなく関数定義である場合でも、Cそれは。と同じ(void)です。

于 2011-10-27T09:01:21.193 に答える
0

違いはありません。最初のものはより一般的で、明確で簡潔だと思います。

于 2011-10-27T09:01:16.593 に答える
0

C ++では違いはなく、2番目の形式はC互換性のためにのみ保持されます。C ++では、最初の形式が推奨されます。

Cでは、それらは異なることを意味します。最初の形式は不明な数の引数を取る関数を指定し、2番目の形式はゼロの引数を取る関数です。

于 2011-10-27T09:07:00.087 に答える
0

一部の非常に古い(非標準の)Cコンパイラは、最初のコンパイラについて文句を言う可能性があるため、2番目のコンパイラはより移植性が高いはずです。

それを除けば、違いはありません。

最初のものは、ユーザーコードでより一般的に使用されます。これは、非常に短いためです。

于 2011-10-27T09:07:18.490 に答える
0

実際には違いはありません。メソッドユーザーに渡すパラメーターがない場合はvoidまたは空の括弧。渡されたパラメーターからだけであることに注意してください。メソッドに戻り値がない場合は、voidキーワードを使用する必要があります。最初のパラメーターはC#でより一般的

于 2011-10-27T09:09:47.403 に答える