【问题标题】:argument name in prototype method (variable name in header function) [duplicate]原型方法中的参数名称(头函数中的变量名称)[重复]
【发布时间】:2012-10-25 04:31:34
【问题描述】:

可能重复:
Should function declarations include parameter names?

在 C++ 头文件中,您需要给出函数原型的名称、返回类型和参数类型。您无需指定参数的名称。 示例:

double fraction(double numerator, double denominator);

double fraction(double, double);

写一个参数的名字有好处吗?可读性? 编译,效率,或者其他方面有什么区别吗?

【问题讨论】:

  • 你说得对@Benj,我找不到类似的问题,但你找到了,谢谢。好吧,也许有人带有编译/效率/其他东西。

标签: c++ methods


【解决方案1】:

正如您所说,您将它们放在那里,以便查看标题的人了解这些参数的用途。

【讨论】:

    【解决方案2】:

    编译没有区别。 (可能稍后解析会很快,因为它必须解析更少的代码,但谁在乎呢?)。

    最大的优势在于可读性。在第二种情况下,用户如何区分哪个是分子,哪个是分母?

    【讨论】:

      【解决方案3】:

      效率没有差别。在标题中省略名称应该与在实现文件中省略它同步。如果您的 impl 不使用该 arg,您可以在此处省略它,然后每个人都可以通过查看参数列表来查看是否使用了 arg(并且当 arg 有名称时,一些编译器会发出警告,但不是t 用于实现。希望对您有所帮助...

      【讨论】:

      • "在实现中与省略同步?"如果我在实施中省略,它将不起作用。我可能误解了你,你能改一下吗?
      • 如果没有使用该参数,那么在实现中省略即可。但是仍然将参数名称作为注释始终是一个好主意,例如void x (int /*theUsefulNameOfThisInt*/) {...}
      【解决方案4】:

      在头文件中保留参数名称的主要原因是为了一致性和可读性。如果您有删除它们的政策,那么您不能再从您的 cpp 文件中复制/粘贴声明。

      如果您使用的是 doxygen 之类的文档引擎,这也可能为您提供保留参数名称的有力理由,因为文档引擎倾向于解析标头,并且如果您包含参数名称,则会提供更好的输出。

      除此之外,没有严格的理由保留它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 2011-12-31
        • 1970-01-01
        • 2014-11-15
        相关资源
        最近更新 更多