【发布时间】:2016-04-02 05:54:08
【问题描述】:
我在 C++ 程序中看到,在函数声明期间,如果函数 void 没有参数,则声明为这样的参数:
int F1(void)
与以下有何不同:
int F1()
【问题讨论】:
标签: c++ function parameter-passing void
我在 C++ 程序中看到,在函数声明期间,如果函数 void 没有参数,则声明为这样的参数:
int F1(void)
与以下有何不同:
int F1()
【问题讨论】:
标签: c++ function parameter-passing void
没有区别。使用void 只是声明同一事物的一种更明确的方式。就个人而言,我从不使用这种语法,也很少看到其他人使用它。
【讨论】:
在 C++ 中也是一样,是从 C 中继承而来的。
以下是 C++ 2003 标准 (C.1.6) 的摘录:
更改:在 C++ 中,使用空参数列表声明的函数不接受任何参数。 在 C 中,空参数列表意味着函数参数的数量和类型未知”
示例:int f(); // means int f(void) in C++ // intf(unknown) in C基本原理:这是为了避免错误的函数调用(即参数数量或类型错误的函数调用)。
对原始特征的影响:改变定义明确的特征的语义。此功能在 C 中被标记为“过时”。
【讨论】:
两者完全相同,将参数字段留空,因为 () 是我更喜欢的,有些人更喜欢写 (void) 只是为了确保编辑代码的人可以确保不需要任何参数。不过没什么区别,只是为了可读性。
【讨论】: