当前位置: 首页 > 面试题库 >

C ++或C中的foo(void)和foo()之间有区别吗?

尹何平
2023-03-14
问题内容

请考虑以下两个函数定义:

void foo() { }

void foo(void) { }

两者之间有什么区别吗?如果没有,那为什么会有void争论呢?审美原因?


问题答案:

在C中:

void foo()表示“带有foo未指定类型的未指定数量的参数的函数”
void foo(void)表示“foo不带参数的函数”
在C ++中:

void foo()表示“foo不带参数的函数”
void foo(void)表示“foo不带参数的函数”
foo(void)因此,通过编写,我们可以在两种语言中实现相同的解释,并使标头变为多语言(尽管我们通常需要对标头做更多的事情才能使它们真正成为跨语言;也就是说,extern "C"如果要编译,则将它们包装在C ++)。



 类似资料:
  • 问题内容: 在Java中,这两个函数声明之间有什么区别? 在这里,您可以找到该问题的答案,但仅适用于 C / C ++ 。在这些语言中,两种声明样式的存在是完全有意义的。 但是在 Java 中这有什么意义呢? 问题答案: 后者在Java中是非法的。您不能声明这样的方法。您应该得到这样的错误: 因此,不仅没有意义-您根本找不到尝试使用此样式的有效代码。

  • 考虑定义如下的 FooBar1 和 类型: 我的尝试/研究: 它们是双向相互分配的!(手动检查并使用检查 - 请参阅此处) 不过,它们彼此并不完全相同!(与检查 - 见这里) VSCode 的智能感知不会崩溃

  • 问题内容: 我只是在阅读一些Java书籍并制作一些小程序进行练习,我创建了一个小代码来获取有关所输入路径的信息,该代码为: 现在在输入对话框中,当我输入时,结果是,但是当我输入C:/时,它将显示C中目录和文件的完整列表。 奇怪的是,D驱动器和其他驱动器不会发生这种情况(即D:/和D:的结果是相同的),这是怎么回事? 更新 使用C#在WPF中也会发生同样的情况! 问题答案: 表示“驱动器上当前选择的

  • 问题内容: 这两个(有效)通用范围是: 相同? 假设我有一个界面 和一些实现它的枚举: 我想要求实现不仅要使用a,而且还必须是枚举。“标准”方式是通过交叉点绑定: 但是我发现这也可行: 通过以上操作,可以编译出: 对于这两种情况,绑定均按上述要求和预期的方式工作。 这两个界限之间是否有区别(如果有),并且一个“优于”另一个? 问题答案: 在这种特定情况下,没有区别,因为Enums形式类型参数实际上

  • 下面的代码是用Clang编译和运行的(在13、14和当前git头上进行了测试),但不是用GCC。 但我不明白它在宣告什么:这个领域是什么? 我可以在

  • 本文向大家介绍C和Python之间的区别,包括了C和Python之间的区别的使用技巧和注意事项,需要的朋友参考一下 C和Python都是主要使用的编程语言。各种特性使它们在程序设计领域流行。根据这些特征,我们可以区分C和Python。 以下是C和Python之间的重要区别。 序号 键 C语言 Python语言 定义 Python是一种通用的解释型,交互式,面向对象的高级编程语言。 类型 另一方面,