声明具有与函数本身使用的不同命名参数的函数的目的是什么?

时间:2012-11-12 03:44:45

标签: c kernighan-and-ritchie

也许这仅仅是为了展示。在阅读K& R时, 1.7功能的开头显示了电源功能的示例。第二行代码声明int power(int m, int n);

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

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

这只是为了表明这些名字不需要相同吗?这种做法应该避免吗?为什么或为什么不呢?

1 个答案:

答案 0 :(得分:4)

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

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

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