【问题标题】:Changing function parameters in C在 C 中更改函数参数
【发布时间】:2014-06-01 23:40:11
【问题描述】:

在声明函数并稍后描述时,是否可以更改函数参数?? 我通常在声明一个函数后描述它:

int function(int parameter_1 . int parameter_2)
{
Some Code..........
}

但是在 Brian Kernighnan 的 Programming in C 中,我的结构如下:

int function(int parameter_1 , int parameter_2) //Only Declaring

main()
{
Some Code................
}

int function(int parameter_3 , int parameter_4) //Parameters Changed, type preserved
{
Some Code Here........
}

我知道结构是正确的,但是可以更改参数(即使保留类型)?
(我不认为这是一个错字,因为作者在他声明一个函数的每个示例中都更改了参数......)

【问题讨论】:

  • “作者在他声明一个函数的每个示例中都更改了参数。” 虽然我手头没有这本书,但这对我来说似乎不太可能。通常最好(尽管没有必要)保持相同的名称。你为什么不呢?
  • @ooga 不,我的意思是可以在 C 中更改参数吗??
  • 在不是定义的声明中给出的名称是无关紧要的。他们甚至可以被排除在外。

标签: c function parameters


【解决方案1】:

参数名称不是 C 中函数签名的一部分,您可以在定义和声明之间更改它们。如果作者这样做,即使明显不鼓励,他也是正确的。

但是,改变 type 会改变函数的签名,并且是不正确的。

【讨论】:

  • 谢谢,但是顺便说一句,函数签名是什么意思??
  • @ArchKudo,函数签名是返回类型、名称和参数类型。
  • 函数的特征是在编译器眼中唯一地标识它。例如,它用于重载解析。
  • 在一个函数的原型中,实际上不需要命名参数,只需要命名类型。如果使用参数名称,则名称应描述内容/上下文,'parameter1'等不是描述性的。
  • 你的行: int function(int parameter_1 , int parameter_2) //只有声明缺少尾随';'在结束括号')'之后
【解决方案2】:

正如 ooga 在他的评论中提到的,只有 类型 及其顺序对声明很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 2019-05-24
    相关资源
    最近更新 更多