2

也许这只是为了展示。在阅读 K&R 时,1.7 Functions的开头显示了幂函数的示例。第二行代码声明int power(int m, int n);

为什么函数源中n第一个参数 的命名与第一个参数的命名不同base

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

这仅仅是为了表明名称不需要相同吗?应该避免这种做法吗?为什么或者为什么不?

4

1 回答 1

4

在原型声明中重要的是类型,而不是名称。有些人在声明中省略了参数名称;有些在声明中使用了比在函数定义中更具描述性的名称(因为人们可能需要在标题中阅读它们)。这里的情况似乎正好相反;定义中的名称比声明中的名称更有意义。

它纯粹是风格。我通常认为在声明和定义中使用相同的名称,但有时定义所需的名称(用于解释参数)过于冗长,无法在函数定义中舒适地使用。

请参阅 Stroustrup 的“C++ 的设计和演变”,了解为什么命名参数不是 C++ 的一部分。是的,那是 C++,但那里的论点(主要是声明和定义之间不必要的耦合)也适用于 C。

于 2012-11-12T03:50:03.573 回答