2016-04-02 12 views
1

は、このようなパラメータとして宣言されています。C++関数の宣言

それはより異なる方法
int F1(void) 

int F1() 
+2

C++では、そうではありません。 –

答えて

1

それは、C++で同じことだ、とC.

からホールドオーバがここにC++ 2003の標準(C.1.6)からの抜粋ですされています

変更点: C++では、空のパラメータリストで宣言された関数は引数をとりません。

int f(); // means int f(void) in C++ 
      // intf(unknown) in C 

根拠:これは(つまり、関数が間違って呼び出す誤った関数呼び出しを避けるためであるCで は、空のパラメータリストは、関数の引数の数と型が」
例は不明であることを意味します。オリジナルの機能の引数の数や種類)

効果:。明確に定義された機能のセマンティクスに変更この機能はC.

で「旧式」としてマークされていました
+0

「Cからのホールドオーバー」 - どういう意味ですか? Cでは、これらは2つの異なるものです。 –

+0

@TheParamagneticCroissant:私の更新された回答を参照してください – Buddy

2

違いはありません。 voidを使用することは、同じことを宣言するためのより明示的な方法です。個人的には、私はその構文を使用せず、他の誰かがそれを使用することはめったにありません。

0

どちらも完全に同じです。引数フィールドは空白のままにしておきます(好きなものがあります)。コードを編集している人が引数が不要であることを保証できるように書いてください。違いはありませんが、単なる読みやすさのことです。