【问题标题】:C++ function declaration [duplicate]C ++函数声明[重复]
【发布时间】:2016-04-02 05:54:08
【问题描述】:

我在 C++ 程序中看到,在函数声明期间,如果函数 void 没有参数,则声明为这样的参数:

int F1(void)

与以下有何不同:

int F1()

【问题讨论】:

    标签: c++ function parameter-passing void


    【解决方案1】:

    没有区别。使用void 只是声明同一事物的一种更明确的方式。就个人而言,我从不使用这种语法,也很少看到其他人使用它。

    【讨论】:

      【解决方案2】:

      在 C++ 中也是一样,是从 C 中继承而来的。

      以下是 C++ 2003 标准 (C.1.6) 的摘录:

      更改:在 C++ 中,使用空参数列表声明的函数不接受任何参数。 在 C 中,空参数列表意味着函数参数的数量和类型未知”
      示例:

       int f(); // means int f(void) in C++
                // intf(unknown) in C
      

      基本原理:这是为了避免错误的函数调用(即参数数量或类型错误的函数调用)。

      对原始特征的影响:改变定义明确的特征的语义。此功能在 C 中被标记为“过时”。

      【讨论】:

      • “来自 C 的保留”——你是什么意思?在 C 中,这是两个不同的东西。
      • @TheParamagneticCroissant:查看我的更新答案
      【解决方案3】:

      两者完全相同,将参数字段留空,因为 () 是我更喜欢的,有些人更喜欢写 (void) 只是为了确保编辑代码的人可以确保不需要任何参数。不过没什么区别,只是为了可读性。

      【讨论】:

        猜你喜欢
        • 2016-02-22
        • 2010-11-08
        • 2019-10-30
        • 1970-01-01
        • 1970-01-01
        • 2020-04-13
        • 2013-09-27
        • 2013-01-05
        • 2013-05-02
        相关资源
        最近更新 更多