可能性の重複:C++空の関数宣言
より一般的に使用されるこれらの2つの宣言との違いは何ですか
C++ Why put void in params??
void function1();
と
void function2(void);
可能性の重複:C++空の関数宣言
より一般的に使用されるこれらの2つの宣言との違いは何ですか
C++ Why put void in params??
void function1();
と
void function2(void);
C++では、0パラメータを表すことが明確に定義されていますが、違いはありません。
しかし、(void)
の関数はパラメータなしを意味し、()
は任意の数のパラメータを意味します。http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fparam_decl.htm
関数定義の空の引数リストから
は機能 が引数をとらないということを示しています。関数宣言の空の引数リスト は、関数が任意の数または型の引数を取ることができることを示します。従って、関数fは引数をとらないことを示している。しかし、
int f();
は、パラメーターの数とタイプがわからないことを示します。 関数が引数を取らないことを明示するには、というキーワードで関数 を定義する必要があります。
すばらしい説明。多くのありがとうwormsparty – iggy2012
あなたは大歓迎です:) – wormsparty
違いはありません。私は、最初のものがより一般的で、明確で簡潔であると言いたい。
C++
には違いはありません。
2番目の宣言は、関数がパラメータを取らないことを明示的に示しています。
C
で2番目の方がよく使用されます。最初はC++
でより一般的なものです。 ()
であなたはパラメータが指定されていない(引数の数は不明)であることを指定している間、(void)
で
が、あなたは、関数がパラメータを持たないように指定している:のでC
の場合の違いがあり
。
ただし、関数宣言ではなく関数定義であれば、C
でも(void)
と同じです。
C++では、違いはなく、2番目の形式はC互換性のためにのみ保持されます。最初の形式はC++で優先されます。
Cでは、それは異なることを意味します。 最初の形式は、未知数の引数を取る関数を指定し、2番目は、引数をゼロとする関数を指定します。
一部の非常に古い(非標準)Cコンパイラは、最初のものについて不平を言うかもしれないので、2番目のものは移植性が高くなければなりません。
それ以外は違いはありません。
最初のコードはユーザーコードでより一般的に使用されています。
実際には、メソッドに渡すパラメータがない場合はvoidまたは空のかっこ.noticeはパラメータを渡しただけです。あなたのメソッドには戻り値がありません。voidキーワードを使用する必要があります。最初のものはC#でより一般的です
可能な複製http://stackoverflow.com/q/5587207/198011 –