2

たぶんこれは見せるためだけのものです。K&R を読んでいるときに、1.7 関数の冒頭に累乗関数の例が示されています。コードの 2 行目は次のように宣言します。int power(int m, int n);

関数のソースで、n最初の引数 の名前が最初の引数 と異なるのはなぜですか。base

int power(int base, int n)
{
   ...
}

これは単に名前が同じである必要がないことを示すためですか? そして、この慣行は避けるべきですか?なぜですか、そうでないのですか?

4

1 に答える 1

4

プロトタイプ化された宣言で重要なのは、名前ではなく型です。宣言でパラメーター名を省略する人もいます。関数定義よりも宣言でよりわかりやすい名前を使用するものもあります (ヘッダーでそれらを読む必要がある場合があるため)。ここでは逆のようです。定義内の名前は、宣言内よりも意味があります。

それは純粋にスタイルです。私は通常、宣言と定義で同じ名前を使用すると考えていますが、(引数を説明するために) 定義に必要な名前は、関数定義で快適に使用するには冗長すぎる場合があります。

名前付きパラメーターが C++ の一部ではない理由については、Stroustrup の「C++ の設計と進化」を参照してください。はい、それは C++ ですが、そこにある引数 (主に宣言と定義の間の不必要な結合) は C にも適用されます。

于 2012-11-12T03:50:03.573 に答える